如何将file_put_contents函数用于循环?

时间:2017-09-26 11:36:38

标签: php json

我想从他们的网址获取多个图片,我想将它们保存在目录中。 我已经使用了file_put_contents(),但它只是放了一个图像。 这是循环中使用此函数的更好方法,还是在循环中使用而不是file_put_contents()的另一个函数?

<?php
include "config.php";
//open ssl:
$arrContextOptions = array(
    "ssl" => array(
        "verify_peer" => false,
        "verify_peer_name" => false,
    ),
);
set_time_limit(0);

$url = 'https://www.instagram.com/' . $name . '/media/';
$content = file_get_contents($url, false, stream_context_create($arrContextOptions));
$json = json_decode($content, true);
//var_dump($json);die();


mkdir($name);
chmod($name, 0600);
for ($i = 0; $i <= 19; $i++) {
    $a = $json['items'][$i]['images']['thumbnail']['url'];
    $content = file_get_contents($a);
    file_put_contents($name . '/image.jpg', $content);
}
?>

3 个答案:

答案 0 :(得分:2)

将文件名更改为:

file_put_contents($name. '/image_'.$i.'.jpg', $content);

然后他们会停止互相覆盖。

答案 1 :(得分:2)

使用file_put_contents($ name。&#34; /image$i.jpg",$ content)。您现在正在覆盖同一个文件,因此只剩下一个

答案 2 :(得分:1)

您必须有意使用file_put_contents($name. '/image.jpg', $content . "\n", FILE_APPEND); 将所有图像存储在一个文件中:

$i

或者为了创建大量文件,您必须在文件名中使用file_put_contents($name. "/image.$i.jpg", $content); ,例如:

'.price-currencySymbol'