如何使用PHP阅读阿拉伯语文本

问题描述 投票:0回答:3

我有PHP代码从文本文件中读取并允许用户搜索指定的字符串。

该系统在英文文本上工作得很好,但在阿拉伯语文本方面,系统不会显示任何内容。

我知道问题出在UNICODE中,但我不知道如何修复它。

content of the file :

来自环境的失控热能。这个名称通常被称为全球变暖高于正常的现象。截至2005年的100年间,地球表面的全球平均气温上升了0.74±0.18°C。根据国际气候变化委员会(IPCC)的说法,“自20世纪中叶以来观测到的全球气温上升的主要原因主要是增加人类活动产生的温室气体(温室气体)。

大多数太阳光线穿过大气层到达地球表面。大部分光线位于可见光波长(眼睛的阳光)。因此,地球表面在白天被加热,地球无法完全吸收太阳能。如果发生这种情况,地球的温度将达到熔点,以及他们生命的终结。

地球被加热以吸收太阳的热量,然后地球表面将吸收的能量能量返回到大气中,并且在没有任何复杂效应的情况下,发生热平衡。在这种情况下,地球的表面温度约为-2.3摄氏度,地球的表面温度是辐射红外辐射(这个例子与现实相反)。

事实上,复杂性,其中大气层是红外线的一部分;因为二氧化碳和水蒸气吸收大部分红外辐射的粒子,以及未被大气吸收到空间的部分,以及红外线的吸收部分气氛过热。[1]

php版本7.1.11

我正在使用Xampp与apache服务器

code:

<?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>
php preg-match-all readfile
3个回答
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>

相应地更改编码

如果有任何遗漏,请添加


0
投票

如果您在Windows上工作,可能您的文件不在utf-8中。试试这个 :

$myFileContents = utf8_encode(fgets($myFileLink));

有关更多信息和其他解决方案,请参阅此主题:Working with files and utf8 in PHP


-3
投票

把这个HTML放在页面顶部

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
© www.soinside.com 2019 - 2024. All rights reserved.