PHPを学習中で、外部サイトの画像を保存するプログラムを作成しました。
まだまだ初歩段階で外部サイトの画像URLが連番の場合のみ動作する物なのですが、「file_put_contents」を使用した場合、
数枚ならいいですが、何百の画像を保存させようとしたとき外部サーバーに負担がものすごくかかってしまうものなのでしょうか。
負荷がかかってしまう場合、こういった保存したい物の場合、何か回避方法などあるのでしょうか?
よろしくお願いいたします。
<?php set_time_limit(0); $error = ''; if(isset($_POST['syutoku'])){ $get_img = $_POST['number']; $url = $_POST['url']; if(isset($get_img) && isset($url)){ for($i=1;$i<=$get_img;$i++){ $url_img = $url . sprintf('%05d', $i).'.jpg'; $context = stream_context_create(array( 'http' => array('ignore_errors' => true) )); $img = file_get_contents($url_img,false,$context); $imginfo = pathinfo($url_img); $img_name = $imginfo['basename']; file_put_contents('./img/' . $img_name, $img); } }else{ $error = 'フォームに値を入力してください。'; } } ?> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>外部サイト画像ダウンロード</title> </head> <body> <h1>外部サイト画像ダウンロード</h1> <p>取得する外部サイトURLと画像の最大ファイル数字を入力してください。</p> <?php if($error){ echo '<p>' .$error. '</p>'; } ?> <form method="post" action="index.php"> <p>サイトURL:<input type="text" value="" name="url"></p> <p>最大数字:<input type="text" value="" name="number"></p> <p><input type="submit" name="syutoku" value="画像取得"></p> </form> </body> </html>
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/11/17 02:40