Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
阿拉伯语编码字符的PHP URL重写模式_Php_Url Rewriting_Arabic - Fatal编程技术网

阿拉伯语编码字符的PHP URL重写模式

阿拉伯语编码字符的PHP URL重写模式,php,url-rewriting,arabic,Php,Url Rewriting,Arabic,本主题与阿拉伯语编码字符的URL重写模式有关。 我们希望使用PHP/MYSQL为数据库中插入的每个标题创建一个标题重写,在英语中,使用下面的函数,一切正常: $rlink =preg_replace ('/ /i', '-', $link); $rlink2 =preg_replace ('/[^a-z0-9\-]/i', '', $rlink); $rlink2 =preg_replace ('/--/i', '-', $rlink2); return $rlink2; 此函数不能用于阿拉伯

本主题与阿拉伯语编码字符的URL重写模式有关。 我们希望使用PHP/MYSQL为数据库中插入的每个标题创建一个标题重写,在英语中,使用下面的函数,一切正常:

$rlink =preg_replace ('/ /i', '-', $link);
$rlink2 =preg_replace ('/[^a-z0-9\-]/i', '', $rlink);
$rlink2 =preg_replace ('/--/i', '-', $rlink2);
return $rlink2;
此函数不能用于阿拉伯字符,它将消除所有未转换为a-z的字符,因此无法使用

如何继续使用PHP/MYSQL在url中使用阿拉伯语标题,如下所示: http://localhost/html/test/ا砦砦砦砦砦砦砦砦砦砦砦


感谢您的建议。

您需要将字符集指定为UTF-8,以便能够存储阿拉伯字符,因此在将记录插入数据库之前,请尝试将这些行添加到php中,假设您正在运行mysql

mysql_query('SET character_set_results=utf8');
mysql_query('SET names=utf8');
mysql_query('SET character_set_results=utf8');
此外,还有一些其他问题,为了解决类似问题,请查看:


编辑:我可能误读了这个问题,您是试图重写物理URL以使用阿拉伯语字符还是将URL存储在MySql中?

您可以使用unicode字符类

允许您为其属性匹配unicode字符,例如字母、数字或标点符号

所以你的台词是:

$rlink2 = preg_replace ('/[^a-z0-9\-]/i', '', $rlink);
将成为:

$rlink2 = preg_replace ('/[^\pL\pN\-]/i', '', $rlink);
其中\pL表示搜索任何字母的类“L”,而\pN表示搜索任何数字的类“N”

我不会说阿拉伯语,但我很确定您还需要至少包含一个其他类,以便在用于将阿拉伯字母连接到单词中的连接器和其他字形上进行匹配,因为这些不会被归类为字母,而是某种形式的标点符号


一旦您提取了正则表达式,只要您的MySQL设置为使用UTF8,您就可以使用UTF8了。

感谢您的回复,我将其设置为UTF8编码谢谢您如此匹配。。。我会试试看。请你投票并接受下面的答案,或者如果你自己解决了问题,请说出解决方法。Danack57,我使用了下面的说明,并将其放入带有ut8编码的脚本中,'/[^a-z0-9\-]/u'not/i和阿拉伯语字符显示在浏览器url的右侧,并且preg_match work属性带有特殊字符。