PHP如何在foreach循环中使用str_replace

PHP如何在foreach循环中使用str_replace,php,foreach,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>'; foreach($html->find(

我有以下代码:

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($html->find('#portfolioImages img')作为$element)
$element->src=str_replace(“~100x50”、“~540x540”、$element->src);
回音'src'“/>
”;
为了解释,
$element->src
返回使用页面爬网脚本返回的图像源(因此是
$html->find
)。但是,我需要将每个src的“~100x50”部分替换为“~540x540”


这段代码的问题是,它在第一个图像上工作,但不返回任何其他图像(应该有多个)。在foreach循环中使用str_replace的正确方法是什么?

您需要放上大括号,以便按预期进行每个操作:

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($html->find('#portfolioImages img')作为$element){
$element->src=str_replace(“~100x50”、“~540x540”、$element->src);
回声“src.”“/>
”; }

使用不带大括号的foreach时,它只执行它后面的第一行。因此,代码中的foreach多次运行第一行,但它之后的第二行只运行一次

您应该将代码放在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>';
}
foreach($html->find('#portfolioImages img')作为$element){
$element->src=str_replace(“~100x50”、“~540x540”、$element->src);
回声“src.”“/>
”; }
在循环周围放置一个
{}
。没有它,只有
foreach
后面的第一行是循环的一部分。你确定还有其他图像吗?
var\u dump($html->find('#portfolioImages img'))给了你什么?