PHP如何在foreach循环中使用str_replace

时间:2016-06-16 19:57:56

标签: php foreach

我有以下代码:

foreach($html->find('#portfolioImages img') as $element) 
$element->src = str_replace("~100x50", "~540x540", $element->src);
echo '<img src="http://www.spotlight.com' . $element->src . '" /><br>';

为了解释,$element->src返回使用页面抓取脚本返回的图像的来源(因此$html->find)。但是,我需要更换&#34; ~100x50&#34;每个src的一部分用&#34; ~540x540&#34;

此代码的问题在于它适用于第一张图像,但之后并没有返回任何其他图像(应该有几张)。在foreach循环中使用str_replace的正确方法是什么?

2 个答案:

答案 0 :(得分:3)

你需要戴上牙套,以便按照你的期望预先工作:

foreach($html->find('#portfolioImages img') as $element) {
    $element->src = str_replace("~100x50", "~540x540", $element->src);
    echo '<img src="http://www.spotlight.com' . $element->src . '" /><br>';
}

当你使用没有大括号的foreach时,它只执行它后面的第一行。所以,你的代码中的foreach多次运行第一行,但是它之后的第二行只运行一次

答案 1 :(得分:1)

您应该将代码放在foreach块中

foreach($html->find('#portfolioImages img') as $element) {
   $element->src = str_replace("~100x50", "~540x540", $element->src);
   echo '<img src="http://www.spotlight.com' . $element->src . '" /><br>';
}