代码之家  ›  专栏  ›  技术社区  ›  Cudos

str\u ireplace不适用于单引号

  •  0
  • Cudos  · 技术社区  · 14 年前

    我想替换字符串中的单引号(')。

    显然这行不通…

    $patterns = array();
    $replacements = array();
    $patterns[0] = "'";
    $patterns[1] = '\'';
    $replacements[0] = 'Something';
    $replacements[2] = 'Same thing just in a other way';
    
    2 回复  |  直到 14 年前
        1
  •  0
  •   status203    14 年前

    您的示例代码似乎已被过度匿名化(索引0&2的$replacements?)以及过度截断(str_ireplace调用在哪里)但是…我猜你还没有完全理解str_ireplace。

    第一点是str_ireplace不起作用。它的返回值是修改后的字符串/字符串数组。

    第二点是,当您有一个搜索和替换数组时,php将从每个数组中提取一个项目并将其应用于主题/主题数组,然后从每个数组转到下一个项目,然后将其应用于同一主题。你可以在下面的例子中看到这一点,两个受试者都用“某物”替换了“'”,而“同一事物只是以另一种方式”从未出现在结果中。

    $patterns = array();
    $replacements = array();
    $patterns[0] = "'";
    $patterns[1] = '\'';
    $replacements[0] = 'Something';
    $replacements[1] = 'Same thing just in a other way';

    $subjects[0]=“我包含了一个报价。”;
    $subjects[1]=“这里还有一个引号。”;

    新主题 =str_ireplace($patterns,$replacements,$subjects);

    印刷品(新闻主题);

    当运行时,这将给出

    数组([0]=>IsomeThingve包含一个引号。[1]=>这个东西也有一个引号。)

        2
  •  2
  •   Anthony Forloney    14 年前

    更换( ' ) " )对我来说很好 str_ireplace .

    $test = str_ireplace("'", "\"", "I said 'Would you answer me?'");
    echo $test; // I said "Would you answer me?" 
    

    也可以很好地替换( ) )

    $test = str_ireplace("\"", "'", "I said \"Would you answer me?\"");
    echo $test; // I said 'Would you answer me?'