ホームページ >バックエンド開発 >PHPチュートリアル >PHP は画像をバッチでダウンロードします。オンラインで見つけたコードは使いにくいです。

PHP は画像をバッチでダウンロードします。オンラインで見つけたコードは使いにくいです。

WBOY
WBOYオリジナル
2016-06-23 13:38:191118ブラウズ



function project_statistics(){    	echo "11111";    	$url = "http://www.xxx.com:81/upload/image";  		$content=file_get_contents($url);  		$reg="/<img.*?src=\"(.*?)\".*?>/";  		  		preg_match_all($reg,$content,$matches);  		  		$path = '../download/img';  		if(!file_exists($path)){  		    mkdir($path, 0777);  		}  		function downImage($url,$filename="") {  		    if($url=="") return false;  		  		    if($filename=="") {  		        $ext=strrchr($url,".");  		        if($ext!=".gif" && $ext!=".jpg" && $ext!=".png" && $ext!="jpeg") return false;  		        $filename=date("YmdHis").$ext;  		    }  		  		    ob_start();  		    //make file that output from url goes to buffer  		    readfile($url);  		    //file_get_contents($url);  这个方法不行的!!!只能用readfile  		    $img = ob_get_contents();  		    ob_end_clean();  		  		    $fp=@fopen($filename, "a");//append  		    fwrite($fp,$img);  		      		    fclose($fp);  		  		    return $filename;  		    			  }		for($i = 0;$i < count($matches[1]);$i ++){  		      		    /*explode 		    $url_arr[$i] = explode('/', $matches[1][$i]); 		    $last = count($url_arr[$i])-1; 		    */  		      		    //strrchr     		    $filename = strrchr($matches[1][$i], '/');  		      		    downImage($matches[1][$i],$path.$filename);  		    //downImage($matches[1][$i],$path.'/'.$url_arr[$i][$last]);  		}    }

アドバイスをお願いします、ありがとうございます。サーバーにアップロードされたすべての写真をローカルにダウンロードしたいだけです。これはまだ変更する必要があります


ディスカッション (解決策) に返信

あなたが指定したコードは、ターゲット Web ページ上のすべてのイメージ タグを収集し、ダウンロードすることです。 。

サーバーにアップロードされた画像をダウンロードしたい場合は、上記のコードの downImage 関数を通じて、サーバー上の画像の URL アドレスをダウンロードに渡してみることができます。

例を挙げてもらえますか?笑

?映画の URL はありますか??
すべての URL をループし、file_get_contents を使用してダウンロードします。

例:
$url = "http://www.abc.com/1.jpg';
$c = file_get_contents($url);
file_put_contents(basename($url), $c, true);




あなたの書いた方法でブラウザを更新しましたが、それをダウンロードするために使用する必要がある機能はありますか? ありがとうございます
複数ある場合は、画像を保存すると、アドレスは Thunder と同様にダウンロード リストに登録されますか?
$url = "http://www.hrb.com:81/upload/image/1.jpg" です。 ";
$c = file_get_contents( $url);
file_put_contents(basename($url), $c, true);

die();

実際の画像アドレスが添付されています:


実行後、1 を見つけます。ローカルの同じディレクトリに

同じレベルにアップロード/画像ディレクトリがありません。操作すると、クライアントの C ドライブまたは D ドライブのフォルダーに 1.jpg が自動的に作成されます。





ちょっと混乱しています。

これを見つける方法は? C ドライブまたは D ドライブの下にフォルダーを作成し、その中に



を入れます。ファイルを見ました。ファイルを別のディレクトリに移動するのと同じように感じます。これらの写真がネットワーク サーバー上にある場合、パラメータを変更するだけで済みますか?
たとえば、デスクトップに移動します。パラメータを変更できますか?
php を実行するマシンは、自分のサーバーにある場合は、デスクトップにのみ配置できます。 Apache を使用するデスクトップ ファイルにパス file_put_contents('/desktop/'.basename($url), $c, true);


つまり、写真の一括ダウンロードなどの機能用です。やファイルの一括ダウンロードなど、上記の方法を使うのは良くないですよね?
フォルダー全体を圧縮し、ユーザーがダウンロードできるように圧縮パッケージのアドレスを提供する必要があります。 そうですか?

クライアント ユーザーの場合は、zip の方が適しています。



ありがとうございます


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。