提问人:Pekka 提问时间:12/17/2009 更新时间:12/17/2009 访问量:4907
addslashes() 表示 preg_replace() 和 co.?
addslashes() for preg_replace() and co.?
问:
如何转义传入数据,以便将其用作 和 consorts 中的模式?例如,我需要与以下字符串匹配:preg_replace()
/vorschau/
显然,我需要转义“v”,否则我会得到一个错误。
我在文档中找不到任何内容。表达式中是否有某种解决方法或解决方法?addslashes()
答:
22赞
Pascal MARTIN
12/17/2009
#1
如果我正确理解了您的问题,您正在寻找preg_quote
:
string preg_quote ( string $str [, string $delimiter = NULL ] )
preg_quote()
接受并放置一个 每个字符前面的反斜杠 这是正则表达式的一部分 语法。
如果您有以下情况,这将很有用 您需要的运行时字符串 在某些文本中匹配,字符串可能 包含特殊的正则表达式字符。str
特殊正则表达式 角色是:
. \ + * ? [ ^ ] $ ( ) { } = ! < > | : -
评论
0赞
Pekka
12/17/2009
这正是我所寻找的,但不知道的。谢谢!
0赞
Pascal MARTIN
12/17/2009
@Pekka : 不客气 :-)(我讨厌看到有人重新发明并试图重新编码这个函数的代码,实际上^^)
0赞
Ciarán Walsh
12/17/2009
#2
看起来你确实想要,但也许你应该更详细地说明你的情况,因为你很有可能试图做的事情可以用更好的方式完成。preg_quote
评论
0赞
Pekka
12/17/2009
preg_quote()是的。我需要从请求 URI 中删除一个基目录:例如,从 = 中删除会导致 ,看起来是最优雅的方式。如果你有更好的解决方案,请开火!/mydirectory
/mydirectory/xyz/123
/xyz/123
preg_replace()
2赞
nikc.org
12/17/2009
$stripped = substr($fullpath, strlen($basedir));
0赞
Ciarán Walsh
12/17/2009
正则表达式很棒,但很少是像这样的简单字符串操作的最佳解决方案:)
评论