0

Facebook にログオンし、すべての友達のリストと写真を表示する Web ページがあります。これらの写真をすべてダウンロードして、サーバー上の zip フォルダーにダウンロードしたいと考えています。各画像には一意の ID がありますが、順番にダウンロードして、1.jpg、2.jpg などの命名スキームで名前を変更する必要があります。

私はいくつかのことを試しましたが、何もうまくいきませんでした。最初に試しました:

$i = 1;
foreach ($friends["data"] as $value) {
$url = 'https://graph.facebook.com/' . $value["id"] . '/picture?type=large';
copy($url,"$i.jpg");
$i++;
}

これでうまくいったと思いましたが、画像を開こうとすると、すべて 0kb でした。また、簡単にダウンロードできるようにすべてのコンテンツを zip として保存することもできません。

次に、これを試しました:

$i=1;
foreach ($friends["data"] as $value) {
$fileName = '<img src="https://graph.facebook.com/' . $value["id"] . '/picture?type=large"/> <br />';
echo $fileName;

header("Content-Disposition: attachment; filename='".$fileName."'");
$target=$fileName;
$newName=$i.'jpg';
rename($target, $newName);
$i++;
}

しかし、これはエラーを出しました:

Warning: Cannot modify header information - headers already sent by (output started at /home/xxx/public_html/xxx.com/facebooksdk/facebook-php-sdk/examples/test.php:70) in /home/xxx0/public_html/xxx.com/facebooksdk/facebook-php-sdk/examples/test.php on line 138

Warning: rename(graph.facebook.com/xx/picture?type=large"/> <br />,1jpg) [function.rename]: No such file or directory in /home/xxx/public_html/xxx.com/facebooksdk/facebook-php-sdk/examples/test.php on line 141

この 2 番目のコードは、私が正しく書いていない可能性もありますが、助けていただければ幸いです。

4

1 に答える 1

0

これは機能しているようです:

    $i = 1;
    foreach ($friends["data"] as $value) {

        echo '<img src="https://graph.facebook.com/' . $value["id"] . '/picture?type=large"/> <br />'; 
        $url = 'https://graph.facebook.com/' . $value["id"] . '/picture?type=large';
        $img = 'photos/'.$i.'.jpg';
        file_put_contents($img, file_get_contents($url));
        $i++;
  }

フォルダーを圧縮する方法にはまだ取り組んでいませんが。

于 2013-09-03T17:50:07.407 に答える