str_replace - 如何处理特殊情况?

时间:2011-03-15 07:35:39

标签: php str-replace

  

可能重复:
  PHP str_replace with for loop from array

如何用数组中的元素替换字符串(#stringA#)?...假设我们有一个文本:

'My shoes are #stringA# but #stringA#'(相同的字符串 - #stringA#)

使用$ array:

$array[0] = 'comfy';
$array[1] = 'smells horrible';

所以它等于'My shoes are ' . $array[0] . ' but ' . $array[1]; - 我的鞋子很舒服,但闻起来很可怕?

1 个答案:

答案 0 :(得分:1)

通常在这种情况下,您使用%s作为字符串替换,然后使用vsprtinf()将%s的出现替换为数组中的值。但是,在像您这样的简单情况下,您也可以用%s替换搜索字符串并获得相同的效果。例如:

<?php

$string = 'My shoes are #stringA# but #stringA#';
$key = "#stringA#";

$array[0] = 'comfy';
$array[1] = 'smells horrible';

$string = str_replace(array('%', $key), array('%%', '%s'), $string);
$newstring = vsprintf($string, $array);

echo $newstring;

?>

(将%替换为%%是为了避免一般情况下printf符号出现任何问题)