gpt4 book ai didi

php - 在阿拉伯语单词中搜索阿拉伯语字母

转载 作者:太空狗 更新时间:2023-10-29 14:11:20 25 4
gpt4 key购买 nike

这是我的工作代码:

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=UTF-8'/>
</head>
<body>
<?php
$arabic = "صحيفة اسبوعية مستقلة شاملة تتابع الاخبار فى المنطقة العربية";
$french = "que voulez vous dire?";

if (isset($_POST['search'])) {
$search = $_POST['search'];
$key = $_POST['key'];
$td = substr_count($arabic, $key);
echo $td;
}

echo "<br />" . $arabic;

function count_occurences($char_string, $haystack, $case_sensitive = true) {
if ($case_sensitive === false) {
$char_string = strtolower($char_string);
$haystack = strtolower($haystack);
}

$characters = preg_split('//u', $char_string, -1, PREG_SPLIT_NO_EMPTY);
//$characters = str_split($char_string);
$character_count = 0;

foreach ($characters as $character) {
$character_count = $character_count + substr_count($haystack, $character);
}

return $character_count;
}
?>
<form name="input" action="" method="post">
<input type= "text" name="key" value=""/>
<input type ="submit" name="search" value =" find it !"/>
</form>
</body>
</html>

对于 $french 它工作得很好,但是对于 $arabic 它就不行了。当然没有错误,但是如果我输入例如 Í 来搜索那个字母,它总是为我输入的每个字母显示 0

有什么不对吗?还是我错过了阿拉伯语的东西?我不知道为什么如果我在 $french 中输入 v 它会在结果中显示 2 效果很好。

最佳答案

您需要使用 Multibyte String Functions .

您还可以在 php.ini 中设置 mbstring.func_overload = 7,php 将自动使用多字节对应的标准字符串函数。

mbstring overloading如果您想为重载函数使用一些其他值,这将更好地满足您的需求,请提供文档

另外,替换

$characters = str_split($char_string);

$characters = preg_split('//u', $char_string, -1, PREG_SPLIT_NO_EMPTY);

因为 str_split 不是多字节安全的并且别无选择

此外,如果提交表单后没有在标题中发送编码,或者它们有问题,您可以在 php.ini 中设置

default_charset = "UTF-8"

关于php - 在阿拉伯语单词中搜索阿拉伯语字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15719060/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com