コードの一部を変更します
次のコードを http://localhost/GetAllPic.php?url=xxx
に変更する方法
url= の後ろの URL は送信する URL です。送信ボタンをクリックする必要はありません
ご存知の方がいらっしゃいましたら、コードを直接教えてください。
require_once 'DownImage.class.php';
?>
<頭>
ウェブページ上のすべての画像をダウンロード
<フォームメソッド="POST" アクション="GetAllPic.php">
ウェブ URL:
//後続の画像ダウンロード処理の前に「送信」ボタンをクリックしてください
if($_POST['submit'] != NULL){
$url=$_POST['url'];
//Web ページの URL を解析し、その Web ページが属するホスト URL を抽出します。多くの画像 URL は相対パスであるため、ホスト URL を先頭に追加する必要があります。
$rs=parse_url($url);
$main_url = $rs['host'];$baseurl = substr($url,0,strrpos($url,'/') 1);
// Web ページのコンテンツを読み取ります。 file_get_contents 関数を使用する場合、次の 2 つのパラメーターはオプションのパラメーターです。たとえば、プロキシ サーバーを使用してインターネットに接続する場合は、プロキシ サーバーのパラメーター
を指定する必要があります。
//プロキシを設定するには、$opts = array('http' => array('proxy'=>'','request_fulluri'=>true)) のように、本体をオプション変数 $opts に設定します。サーバーオプション。通常の状況では、最後の 2 つのパラメータは省略できます
$opts=array('http' => array('request_fulluri'=> true));
$context = stream_context_create($opts);
$message = file_get_contents($url,false, $context);
//$regに正規表現を設定します。
$reg = "/
/i";
//関数 preg_match_all は、文字列 $message 内の正規表現に一致するすべての文字列を検索し、一致が失敗した場合、配列の長さは 0
に結果を保存します。
preg_match_all($reg,$message,$matches);
for($i=0; $i
// 一致する結果をすべて取得します。 $matches は多次元配列であり、正規表現内の括弧 "()" の数に関係します。ここで 1 つのペアのみが出現する場合、それは常に $ に格納されます。 matches[0] は一致する文字列ですが、
//$matches[1] は、正規表現内の最初のかっこのペアに一致するコンテンツを保存します。これは画像の URL です
$matches[1][$i]=strto lower($matches[1][$i]);
//画像が相対パスの場合はフルパスに変換します。相対パスには 2 種類あります。1 つ目は、最初の文字が「/」の場合、ホストの URL を追加するだけで変換できます。完全な URL。
//2 つ目は、現在のページに対する相対パスを (ファイル名、つまり変数 $baseurl の値に加えて) 現在の URL に追加する必要があるということです
if(!strpos('a'.$matches[1][$i],'http')){
if(strpos('a'.$matches[1][$i],'/')==1)
$matches[1][$i]='http://'.$main_url.$matches[1][$i];
else $matches[1][$i]=$baseurl.$matches[1][$i];
}
}
// array_unique 関数を呼び出して、重複する画像 URL をフィルタリングします
$img_array=array_unique($matches[1]);
//画像ダウンロード クラス GetImage
をインスタンス化します。
$Gimg = new DownImage();
for($i=0; $i
//source属性にダウンロード対象の画像のURLを設定し、save_toに画像の保存ディレクトリを設定します。ダウンロードを開始するには、download メソッドを呼び出します。 $Gimg->download('gd')
の形式でダウンロード メソッドを呼び出す場合、デフォルトでは cURL ライブラリを使用します。
, 次に、image 関数のメソッドを使用して画像をダウンロードします。
$Gimg->source = $img_array[$i];
$Gimg->save_to = './data/';
$FILE = $Gimg->download();
}
echo "ダウンロードが完了しました";
}
?>