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'))给了你什么?