我有阿拉伯语文本,想要在URL中发送,所以我使用了以下功能
$string = 'الغديات والعشيات" لن تنفع!';
$text = preg_replace('/[^\p{Arabic}\da-z-]/ui', '', $string);
输出:الغدياتوالعشياتلنتنفع
此函数删除单词之间的空格,这是不期望的。
那么如何避免移除空间?还有其他功能可以帮助我吗?
答案 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
。