PHP文件()到foreach数组并进入img

时间:2015-07-23 21:09:09

标签: php file file-get-contents

我一直在尝试将文件()和file_get_contents生成的列表中的结果转换为图像,我已经做到了这一点,但似乎无法得到任何地方:这里是我得到的:

<?php
$data = file('http://cadenanoticias.com.mx/galerias/notas/22925/');

foreach((array)$data as $whoisline){
echo '<img src="http://cadenanoticias.com.mx/galerias/notas/22925/'.$whoisline.'">';
}
?>

到目前为止,我可以看到结尾的双引号和结束括号,以及它。

关于如何实现这一目标的任何想法?

4 个答案:

答案 0 :(得分:1)

PHP Simple HTML DOM Parser的帮助下,您可以执行以下操作。

<?php
require "simple_html_dom.php";

// Create DOM from URL or file
$html = file_get_html("http://cadenanoticias.com.mx/galerias/notas/22925/");

// Find all images
foreach($html->find("a") as $element) {
    if (substr(strrchr($element->href,'.'),1) == "jpg") {
        echo '<img src="http://cadenanoticias.com.mx/galerias/notas/22925/'. $element->href .'">';
    }
}

答案 1 :(得分:0)

您的示例中使用file_get_contents返回的数据是HTML,因此为了提取您需要parse the HTML的图片。

我建议使用curl取代HTML,因为file_get_contents并不总是允许抓取远程网址。

另一种选择是使用preg_match提取图片网址,然后根据需要循环浏览。

如果目录是本地的,那么您可以使用glob,然后返回的数据将是一个可以循环的数组。

答案 2 :(得分:0)

好我的想法是值得的:

http://cadenanoticias.com.mx/galerias/notas/22925/网站上的

添加一个index.php:

<?php
$files=array();
foreach (glob("*.jpg") as $filename) {
$files[]=$filename;
}
echo json_encode($files);

在另一台服务器上的脚本

<?php
    $data = file_get_contents('http://cadenanoticias.com.mx/galerias/notas/22925/');

    foreach(json_decode($data) as $myImage){
    echo '<img src="http://cadenanoticias.com.mx/galerias/notas/22925/'.$myImage.'">';
    }
    ?>

答案 3 :(得分:-1)

你需要研究一下glob。

foreach (glob("/galerias/notas/22925/*.{png,jpg,tiff}") as $filename) {

echo '<img src="http://cadenanoticias.com.mx/galerias/notas/22925/'.$filename.'">';

}