php循环搜索和替换字符串

时间:2012-09-23 18:06:31

标签: php loops str-replace

惠!这是我的第一个问题,如果我说不对,请提前抱歉。

我想在文本中使用#pic1#(#pic2#等)插入描述文本中的图库中的图片,并将其替换为

以下是代码:

<?
$myString =$art[0][page_text];
$pics=mysql_query_assoc("select * from pages_galerie where id_page='".$id_page."'");
$count= count($pics);
for ($i=0; $i < $count; $i++) {
$search='#pic'.$i+1.'#';
$img=$pics[$i][pic];
$newString = str_replace($search, "<img src=".SITE_URL."pics/medium/".$img.">", $myString);
}
?>

它不起作用! 我做错了什么?

1 个答案:

答案 0 :(得分:1)

试试这个 http://codepad.org/2NBlkDN9

<?
$myString =$art[0][page_text];
$myString = '#pic1# #pic2#';
//$pics=mysql_query_assoc("select * from pages_galerie where id_page='".$id_page."'");
$pics = array(
   array('pic' => 'TEST1'),
   array('pic' => 'TEST2'),
   array('pic' => 'TEST3'),
);
$count= count($pics);

$newString = $myString;
for ($i=0; $i < $count; $i++) {
$search='#pic'.($i+1).'#';
$img=$pics[$i][pic];

$newString = str_replace($search, "<img src=".SITE_URL."pics/medium/".$img.">", $newString);
}
echo $newString;
?>

您正在$myString中执行替换,并且每次都将其存储在$newString中。因此,只有最后一次替换对最终输出有任何影响。我已使用$newString初始化$myString并在$newString中执行了替换。