PHP:Rawurlencode内部Preg replace

PHP:Rawurlencode内部Preg replace,php,preg-replace,Php,Preg Replace,while($row=mysql\u fetch\u数组($result)){ $search='.$row['searchquery']; 回音“” 但是如果有人在SuooUu中键入字母,那么RouurLeNoCK就是不可能的,但是我想用PixeLead去掉空白,用+< 这可能吗?您对str_replace函数有异议吗?如果没有,您可以将其与rawurlencode一起使用。这样会更简单、更快。您的问题的答案是使用一个可以实际处理UTF-8字符串的正则表达式函数 mb_internal_enc

while($row=mysql\u fetch\u数组($result)){ $search='.$row['searchquery'];
回音“”

但是如果有人在SuooUu中键入字母,那么RouurLeNoCK就是不可能的,但是我想用PixeLead去掉空白,用+<


这可能吗?

您对str_replace函数有异议吗?如果没有,您可以将其与rawurlencode一起使用。这样会更简单、更快。

您的问题的答案是使用一个可以实际处理UTF-8字符串的正则表达式函数

mb_internal_encoding("UTF-8"); 
mb_regex_encoding('UTF-8');

// eliminate the first spaces
$search = mb_ereg_replace('^\s*', '', ''.$row['searchquery']);
// replace the other spaces with '+' signs
echo '<a href="http://www.example.com/' . mb_ereg_replace('\s', '+', $search) . '+/">';
这似乎更好,但你应该小心。我现在已经尝试过了,它可以很好地输出你的字符,但我注意到它去掉了我作为输入提供的一些其他UTF-8字符(ăşţ)

zaf是对的,有更简单的方法可以做到这一点:)

echo '<a href="http://www.example.com/' . preg_replace(array('/[^\s\w]/u','/\s/u'),array('','+'),$search) . '+/">'