<?php
$str = "Hello world. (can you hear me?)";
echo quotemeta($str);
?>
上面代码的输出将是
Hello world\. \(can you hear me\?\)
(PHP 4、PHP 5、PHP 7、PHP 8)
quotemeta — 引用元字符
string
输入字符串。
返回引用元字符的字符串,或者如果 string
给定为空字符串,则返回 false
。
示例 #1 quotemeta() 示例
<?php
var_dump(quotemeta('PHP is a popular scripting language. Fast, flexible, and pragmatic.'));
?>
以上示例将输出
string(69) "PHP is a popular scripting language\. Fast, flexible, and pragmatic\."
注意: 此函数是二进制安全的。
<?php
$str = "Hello world. (can you hear me?)";
echo quotemeta($str);
?>
上面代码的输出将是
Hello world\. \(can you hear me\?\)
我花了很长时间才意识到这不是我想要的命令,用于转义将用作系统命令一部分的字符串中潜在的危险字符。相反,我需要 escapeshellarg() (https://php.net/manual/en/function.escapeshellarg.php) 或 escapeshellcmd() (https://php.net/manual/en/function.escapeshellcmd.php)
此函数转义在正则表达式中具有特殊含义的字符。preg_quote() <https://php.net/manual/en/function.preg-quote.php> 具有类似的功能,但功能更强大,因为它转义更多字符(包括一个用户指定的字符)。