重复的PHP代码块

时间:2017-06-20 07:02:21

标签: php url foreach simple-html-dom

我从特定网址获取图片。使用此脚本我可以在我的网站上显示它们没有任何问题。我得到图像的网站有多个(约200页)我需要的图像。

我不想手动复制PHP代码块,每次从1到200填写页码。是否可以在一个块中完成?

赞:$ html = file_get_html('http://example.com/page/ 1 ... to ... 200 ');

   <?php

require_once('simple_html_dom.php');
$html = file_get_html('http://example.com/page/1');
foreach($html->find('img') as $element) {
    echo '<img src="'.$element->src.'"/>';
}

$html = file_get_html('http://example.com/page/2');
foreach($html->find('img') as $element) {
    echo '<img src="'.$element->src.'"/>';
}

$html = file_get_html('http://example.com/page/3');
foreach($html->find('img') as $element) {
    echo '<img src="'.$element->src.'"/>';
}
?>

4 个答案:

答案 0 :(得分:1)

您可以像这样使用for循环:

require_once('simple_html_dom.php');
for($i = 1; $i <= 200; $i++){
    $html = file_get_html('http://example.com/page/'.$i);
    foreach($html->find('img') as $element) {
        echo '<img src="'.$element->src.'"/>';
    }
}

所以现在你有一个代码块,将执行200次。

它通过将$i的值附加到网址来更改网页编号,每次循环完成一轮后,$i的值就会变为$i + 1

如果您希望从较高的页码开始,只需将$i = 1的值更改为$i = 2或任何其他号码,您就可以将200更改为max适用于您的情况。

答案 1 :(得分:1)

首先,将它们存储在数据库中。您可以(/应该)将图像下载到您自己的服务器,或者将uri存储到图像中。您可以使用FMashiro's之类的代码或类似的代码,但打开200页并解析其HTML需要永远。每次网页浏览。

然后,您只需在查询中使用LIMIT函数来自行创建页面。

无论如何我推荐这种方法,因为这比每次有人打开这个页面时解析html要快得多。而且您将拥有排序选项以及数据库为您提供的其他专业人员。

答案 2 :(得分:1)

有许多好的解决方案:尝试从1到200进行循环

for($i = 1; $i <= 200; $i++){
    $html = file_get_html('http://example.com/page/'.$i);
    foreach($html->find('img') as $element) {
        echo '<img src="'.$element->src.'"/>';
    }
}

答案 3 :(得分:1)

 <?php
function SendHtml($httpline) {
    $html = file_get_html($httpline);
foreach($html->find('img') as $element) {
    echo '<img src="'.$element->src.'"/>';
}
}


for ($x = 1; $x <= 200; $x++) {
 $httpline="http://example.com/page/";
 $httpline.=$x;
 SendHtml($httpline);
}

?>

只是循环。创建发送功能并循环拨打电话。 我建议你阅读https://www.w3schools.com/php/default.asp

中的所有php文档