我知道这个论坛上有很多类似的问题,但我已经第二天在研究答案了,似乎什么都不起作用。
这是我学习PHP的第一周,所以请试着用一种简单的方式回答:)所以:
我正在创建一个共轭器,到目前为止进展顺利,但前提是我不使用特殊字符。由于波兰语动词都是关于特殊字符的,我被卡住了。
该代码有效(按下"提交"后,屏幕上可以看到共轭):
第1页:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Conjugator</title>
</head>
<body>
<form action="new.php" accept-charset="UTF-8" method="post" >
Conjugate: <input type="text" name="verb"><br>
<input type="submit">
</form>
</body>
</html>
第2页:
<?php
header('Content-Type: text/html; charset="UTF-8"');
$verb = $_POST['verb'];
$last2 = substr ($verb, -2);
$last3 = substr($verb, -3);
$last4 = substr($verb, -4);
$root2 = str_replace($last2, "", $verb);
$root3 = str_replace($last3, "", $verb);
$root4 = str_replace($last4, "", $verb);
$nic = array("nie", "nisz", "ni", "nimy", "nicie", "nia" );
$gnic = array("gnije", "gnijesz", "gnije", "gnijemy", "gnijecie", "gnija");
$ac = array("am", "asz", "a", "amy", "acie", "aja");
if ($last3 == "nic" && $last4 != "gnic") {
foreach ($nic as $one) {
echo "<li>$root3$one</li>";
}
}
elseif ($last4 == "gnic") {
foreach ($gnic as $one) {
echo "<li>$root4$one</li>";
}
}
elseif ($last2 == "ac") {
foreach ($ac as $one) {
echo "<li>$root2$one</li>";
}
}
?>
但如果我写了一个例子:$nic=数组("niÉ","nisz","ni","nimy","nicie","nyń");然后:if($last3=="nić"&$last4!="gnic")没有结果。
为了进行检查,可以尝试使用"pienić"或"lśnić"等动词(它们不起作用),或者不使用特殊字符("pienic"、"lsnic")来编写它们——第一个代码会起作用。
我们将非常感谢您的帮助!!
您可能无法将substr()与UTF-8一起使用。它根据字节而不是字符进行思考。看看mb_substr()。