在URL中发送阿拉伯文本

时间:2014-05-21 06:17:05

标签: php regex

我有阿拉伯语文本,想要在URL中发送,所以我使用了以下功能

$string = 'الغديات والعشيات" لن تنفع!';
$text = preg_replace('/[^\p{Arabic}\da-z-]/ui', '', $string);

输出:الغدياتوالعشياتلنتنفع

此函数删除单词之间的空格,这是不期望的。

那么如何避免移除空间?还有其他功能可以帮助我吗?

3 个答案:

答案 0 :(得分:2)

我使用过“rawurlencode”,它对我来说很好。

$text = 'الغديات والعشيات" لن تنفع!';

<a href="http://example.com?text=<?php echo htmlspecialchars(rawurlencode($text)) ?>" >Go</a>

不需要做任何其他事情。谢谢大家的努力。

答案 1 :(得分:0)

试试这个:

$string = 'الغديات والعشيات" لن تنفع!';
$string = str_replace(' ', 'ضضض', $string);  // save the space
$string = str_replace('!', 'ضضض', $string);  // save the  !
$string = preg_replace('/[^\p{Arabic}\da-z-]/ui', '', $string);//remove all none arabic char
$string = str_replace('ضضض', ' ', $string); // return space and "!"
echo $string;

答案 2 :(得分:0)

你不需要正则表达式。它的工作原理如下:

<?php
  echo '<a href="someplace?ss=', urlencode($string), '">';
?>

urlencode()会自动将空格保留为%20