首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP: Preg-replace中的Rawurlencode

PHP: Preg-replace中的Rawurlencode
EN

Stack Overflow用户
提问于 2010-04-06 02:05:03
回答 2查看 328关注 0票数 0

而($row= mysql_fetch_array($result)){ $search = '‘。$row‘’searchquery‘;

代码语言:javascript
复制
 echo '' ...

但是如果有人在äöü中输入,它不会显示字母-使用rawurlencode是可能的,但我想用pregreplace删除空格,并将其替换为+

这有可能吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-04-06 02:37:01

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

代码语言:javascript
复制
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修饰符:

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

这看起来更好,但您应该小心。我现在已经尝试过了,它可以很好地输出您的字符,但我注意到它去掉了我作为输入(ăşţ)提供的一些其他UTF8字符。

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

票数 1
EN

Stack Overflow用户

发布于 2010-04-06 02:20:06

您对str_replace函数有异议吗?如果不是,那么您可以使用rawurlencode来使用它。这会简单得多,速度也快得多。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2580058

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档