我的str_replace
具有以下功能:
function url_seo($text)
{
$match = array(']','\\',';',"'",',','.','/','~','`','=');
$replace = array('-','','','','','','','','','');
$text = str_replace($match, $replace, $text);
return $text;
}
我应该在\
变量中的所有字符之前放置$match
,如下所示:
$match = array('\]','\\','\;',"\'",'\,','\.','\/','\~','\`','\=');
还是没有必要?
答案 0 :(得分:8)
search
正在搜索值,也称为针。 数组可用于指定多个针。
因此,这不是正则表达式,除了必须始终转义的escape sequences之外,您不必转义任何字符。
\"
打印下一个字符作为双引号,而不是更接近的字符串
\'
将下一个字符打印为单引号,而不是更接近的字符串
\n
打印换行符号\t
打印标签字符
\r
打印回车(不经常使用)
\$
将下一个字符打印为美元,而不是变量的一部分\\
将下一个字符打印为反斜杠,而不是转义符号
因此,只应对您的字符串数组中的\
进行转义。
根据字符串限定符符号,您可能还必须转义'
和"
,但您可以像以前那样将其替换:'"'
和"'"
是一种避免过度逃避的好方法。