用于从数组中签入字符串的八进制
我想将 \46
这样的八进制符号转换为 &
这样的普通符号。
问题在于输入是使用 preg_match_all()
创建的,放入数组中然后检索。
如果我手动将 \46
八进制表示法输入到带有双引号的变量中,例如$input="\046";
那么 PHP 就会很好地转换它。
但是,当我将其放入 preg_match_all()
的数组中时,它会返回未转换的值。
我想转换它,因为我想查询有“&”记录的数据库(mysql)符号为 & 符号。
I want to convert octal sign like \46
to normal sign like &
.
The problem is that the input is created with preg_match_all()
, put into an array and then retrieved.
If I'd manually input the \46
octal notation into variable with double quotes, like$input="\046";
then PHP would convert it nicely.
But when I have it into an array from preg_match_all()
, it returns it unconverted.
I want to convert it because I want to query database (mysql) that have records with "&" sign as ampersand.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
使用
stripcslashes 文档stripcslashes() >:
Use
stripcslashes()
From the stripcslashes documentation:
有一个有趣的替换技巧(或者更确切地说是黑客)
there's an interesting replace trick (or rather hack)
不是特别优雅,但您可以
eval
字符串。当然,这也会评估字符串中的其他任何内容,但这也许就是您想要的。如果你想避免评估变量,你应该首先用 \$ 替换 $ 。Not particularly elegant, but you can
eval
the string. Of course, this will eval anything else in the string too, but maybe that is what you want. If you want to avoid evaling variables you should replace $ with \$ first.尝试:
Try: