我想替换字符串中的单引号 (')。
显然这不起作用......:
$patterns = array();
$replacements = array();
$patterns[0] = "'";
$patterns[1] = '\'';
$replacements[0] = 'Something';
$replacements[2] = 'Same thing just in a other way';
我想替换字符串中的单引号 (')。
显然这不起作用......:
$patterns = array();
$replacements = array();
$patterns[0] = "'";
$patterns[1] = '\'';
$replacements[0] = 'Something';
$replacements[2] = 'Same thing just in a other way';
'
用 ( )替换 ( )"
对我来说很好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?'
看起来您的示例代码已被过度匿名(索引 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] = "I've included a single quote.";
$subjects[1] = "This'll also have a quote.";
$newSubjects = str_ireplace($patterns, $replacements, $subjects);
print_r($newSubjects);
当运行这给出
数组( [0] => ISomethingve 包含一个单引号。[1] => ThisSomethingll 也有一个引号。)