我有从文本文件中读取的PHP代码,允许用户搜索指定的字符串。
该系统适用于英文文本,但在阿拉伯语文本方面,系统不会显示任何内容。
我知道问题出现在UNICODE中,但我不知道如何修复它。
سيلانالطاقةالحراريةمنالبيئةوإليها。 وعادةمايطلقهذاالاسمعلى ظاهرةارتفاعدرجاتحرارةالأرضعنمعدلهاالطبيعي。 وقدازدادالمعدل العالميلدرجةحرارةالهواءعندسطحالأرضب0.74±0.18°Cخلالالمائة 2005年عامالمنتهيةسنة “أغلبالزيادةالملحوظةفيمعدلدرجةالحرارةالعالميةمنذمنتصفالقرن العشرينتبدوبشكلكبيرنتيجةلزيادةغازاتالاحتباسالحراري(غازات البيتالزجاجي)التيتبعثهاالنشاطاتالتييقومبهاالبشر。
تخترقأغلبأشعةالشمسالغلافالجويلتصلإلىسطحالأرضوأغلبتلكالأشعة تقعفيالطولالموجيالمرئي(ضوءالشمسالذيتراهالعين)لذلكيحدثتسخين 更多信息,更多信息,更多信息 更多信息,更多信息 الحياةعليها。
تسخنالأرضلامتصاصحرارةالشمس,ثميعيدسطحالأرضإشعاعالطاقةالممتصة 更多信息来自الغلافالجوي حراري。 وفيهذهالحالةتكوندرجةحرارةسطحالأرضنحو - 2.3درجةمئوية, 发布消息来源:وهذا المثالمخالفللواقع)。
وفيالواقعتعقيدات,حيثيحتجزالغلافالجويجزءامنالأشعةتحت الحمراء;لوجودجزئياتثانيأكسيدالكربونوبخارالماءالتيتمتصالجزء 更多信息,更多信息更多信息 الغلافالجويإلىالفضاء,ويعملالجزءالممتصمنالأشعةتحتالحمراءفي الغلافالجويعلىرفعدرجةالحرارة。[1]
php version 7.1.11
我正在使用Xampp和apache服务器
<?php
$myFile = "arabic text.txt";
$myFileLink = fopen($myFile, 'r');
$line = 1;
if(isset($_POST["search"])) {
$search =$_POST['name'];
while(!feof($myFileLink)) {
$myFileContents = fgets($myFileLink);
if( preg_match_all('/('.preg_quote($search,'/').')/i', $myFileContents, $matches)) {
foreach($matches[1] as $match) {
echo "Found $match on $line";
}
}
++$line;
}
}
fclose($myFileLink);
//echo $myFileContents;
?>
<html>
<head></head>
<body>
<form action="index.php" method="post">
<p>enter your string <input type ="text" id = "idName" name="name" /></p>
<p><input type ="Submit" name ="search" value= "Search" /></p>
</form>
</body>
</html>
答案 0 :(得分:0)
如果您在Windows上工作,可能您的文件不在utf-8中。 试试这个:
$myFileContents = utf8_encode(fgets($myFileLink));
有关更多信息和其他解决方案,请参阅此主题: Working with files and utf8 in PHP
答案 1 :(得分:0)
因为您的表单发布是unicode字符,如果您的文件包含utf-8编码,则需要使用utf-8
您可以使用以下
检查编码echo mb_detect_encoding($search);
echo mb_detect_encoding("حلو أل إز جود");
使用utf-8
设置表单<html>
<head></head>
<meta http-equiv="Content-Language" content="ar-sa">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<form action="POST.php" method="post">
<p>enter your string <input type ="text" id = "idName" name="name" /></p>
<p><input type ="Submit" name ="search" value= "Search" /></p>
</form>
</body>
</html>
相应地更改编码
如果遗漏任何内容,请添加
答案 2 :(得分:-3)
将此html放在页面顶部
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">