转义" str_replace"中的特殊字符PHP功能

时间:2015-07-06 08:47:55

标签: php replace str-replace

我的str_replace具有以下功能:

function url_seo($text)
{
    $match    = array(']','\\',';',"'",',','.','/','~','`','=');
    $replace  = array('-','','','','','','','','','');
    $text     = str_replace($match, $replace, $text);
    return $text;
}

我应该在\变量中的所有字符之前放置$match,如下所示:

$match = array('\]','\\','\;',"\'",'\,','\.','\/','\~','\`','\=');

还是没有必要?

1 个答案:

答案 0 :(得分:8)

根据str_replace PHP reference

  

search
  正在搜索值,也称为数组可用于指定多个

因此,这不是正则表达式,除了必须始终转义的escape sequences之外,您不必转义任何字符。

  

\"打印下一个字符作为双引号,而不是更接近的字符串
  \'将下一个字符打印为单引号,而不是更接近的字符串
  \n打印换行符号   \t打印标签字符
  \r打印回车(不经常使用)
  \$将下一个字符打印为美元,而不是变量的一部分   \\将下一个字符打印为反斜杠,而不是转义符号

因此,只应对您的字符串数组中的\进行转义。

根据字符串限定符符号,您可能还必须转义'",但您可以像以前那样将其替换:'"'"'"是一种避免过度逃避的好方法。