我的HTML代码是代码重复16次:
app.use(function(req, res, next) {
//do everything you want to happen on every request
next();
});
app.listen(app.get('port'), function() {
console.log('listening on port ' + app.get('port'));
});
我想知道我所做的所有imgs链接和文字:
<div class="headline_image">
<a ga-cat="slideshow-view" ga-action="view-1" href="mylink"><img src="http://dd4994.jpg" width="420" height="323" align="right" alt="my text "/></a>
</div>
代码是否有任何变化?
答案 0 :(得分:0)
通过使用过多的匿名对象来减慢代码速度。这意味着你不要将函数的结果放入一个变量中,而只是在运行中使用它&#34;&#34;。这需要一次又一次地运行你的功能。
因为你可以使用函数find
来返回一个数组,所以我建议你在for循环之前这样做。
$imgarray = $html->find('div[class=headline_image] img', $x);
这样你只需运行$html->find
一次,而不是十六次。在for循环中,您可以将其用作数组并使用结果:$imgarray[$x]
。你为$anchorarray
做了同样的事情,你的代码会加快,你会看到。
替代解决方案是在容器中使用PHP DOM $childNodes
,其中可以找到这个16项(或body元素)。这将返回16个div
元素,您可以通过为$firstChild
元素调用<a>
并为<img>
元素再次调用$ firstChild来导航。如果你想对网站进行更改(比如在最后添加更多内容等),这可能更安全。
答案 1 :(得分:0)
嘿Daniel我把代码更改为:
$imgarray = $html->find('div[class=headline_image] img');
$linkarray = $html->find('div[class=headline_image] a');
for ($x = 0; $x <= 15; $x++) {
echo $imgarray[$x]->getAttribute('src');
echo '<br/>';
echo $imgarray[$x]->getAttribute('alt');
echo '<br/>';
echo $linkarray[$x]->getAttribute('href');
echo '<br/>';
}
答案 2 :(得分:0)