而($row= mysql_fetch_array($result)){ $search = '‘。$row‘’searchquery‘;
echo '' ...但是如果有人在äöü中输入,它不会显示字母-使用rawurlencode是可能的,但我想用pregreplace删除空格,并将其替换为+
这有可能吗?
发布于 2010-04-06 02:37:01
您的问题的答案是使用一个可以实际处理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) . '+/">';还可以对preg函数使用/u修饰符:
echo '<a href="http://www.example.com/' . preg_replace(array('/[^\s\w]/u','/\s/u'),array('','+'),$search) . '+/">'这看起来更好,但您应该小心。我现在已经尝试过了,它可以很好地输出您的字符,但我注意到它去掉了我作为输入(ăşţ)提供的一些其他UTF8字符。
zaf是对的,有更简单的方法可以做到这一点:)
发布于 2010-04-06 02:20:06
您对str_replace函数有异议吗?如果不是,那么您可以使用rawurlencode来使用它。这会简单得多,速度也快得多。
https://stackoverflow.com/questions/2580058
复制相似问题