13

fopen() で「ファイル名」として URL を使用して imagecreatefromjpeg()、imagecreatefrompng() などを使用できることはわかっていますが、セキュリティ上の問題によりラッパーを有効にできません。URL を有効にせずに imagecreatefromX() に渡す方法はありますか?

私もcURLを使ってみましたが、それも私に問題を引き起こしています:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"http://www.../image31.jpg"); //Actually complete URL to image
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$data = curl_exec($ch);
curl_close($ch);

$image = imagecreatefromstring($data);
var_dump($image);

imagepng($image);
imagedestroy($image);
4

3 に答える 3

25

cURLを使用してファイルをダウンロードし、結果をにパイプすることができますimagecreatefromstring

例:

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $imageurl); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // good edit, thanks!
    curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1); // also, this seems wise considering output is image.
    $data = curl_exec($ch);
    curl_close($ch);

    $image = imagecreatefromstring($data);
于 2012-09-09T08:43:40.663 に答える
1

stream_wrapper_registerを使用して、「http」用の cURL ベースのストリーム ラッパーを実装することもできます。

于 2012-09-09T08:45:24.540 に答える
0

いつでもイメージを(たとえばcURLを使用して)一時ファイルにダウンロードし、そのファイルからイメージをロードできます。

于 2012-09-09T08:39:07.393 に答える