PHP file() 到 foreach 数组并进入 img

PHP file() to foreach array and into img

我一直在尝试将 file() 和 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.'">';
}
?>

到目前为止,我可以看到结尾的双引号和右括号,仅此而已。

关于如何实现这个的任何想法?

您需要查看 glob。

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

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

}

您的示例中使用 file_get_contents 返回的数据是 HTML,因此为了提取图像,您必须 parse the HTML

我建议使用 curl instead to fetch the HTML as file_get_contents 并不总是允许获取远程 URL。

另一种选择是使用 preg_match 提取图像 URL,然后您可以根据需要循环访问它们。

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

好吧,我的想法是值得的:

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.'">';
    }
    ?>

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 .'">';
    }
}