php はリモート画像を保存します。次のコードは私が書いたものですが、サーバー上に画像を保存する成功率があまり高くないことが最終的にわかりました。 theft, read 以下のコードは自分で書いたものですが、file_get_contents を使って画像を取得するのに成功率があまり高くないことが分かりました。ホストに盗難防止機能がある場合は、読んでください。ホストを欺く方法は、fsockopen を使用してユーザー パケットをホストに送信することです
関数 get_remote($body){
set_time_limit(0);
$img_array = array();
$img_path = "get_pic/";
preg_match_all("/(src|SRC)=["|'| ]{0,}(http://(.*).(gif|jpg|jpeg|png))/isU",$body,$img_array) ;
$img_array = array_unique($img_array[2]);
foreach ($img_array as $key => $value) {
$get_file = @file_get_contents($value);
$ファイル時間 = 時間();
!is_dir($img_path) : null;
$filename = date("YmdHis",$filetime).rand(1,999).'.'.substr($value,-3,3);
if(空($get_file)){
睡眠(3);
$get_file = @file_get_contents($value);
If(空($get_file)){
$body = preg_replace("/".addcslashes($value,"/")."/isU", 'http://www.111cn.cn/notfound.jpg', $body);
続けてください;
}
}
if(!empty($get_file) ){
$fp = fopen($img_path.$filename,"w");
if(fwrite($fp,$get_file)){
$body = preg_replace("/".addcslashes($value,"/")."/isU", $img_path.$filename, $body);
}
}
fclose($fp);
睡眠(1);
}
//$body =str_replace('
$body を返します;
}
fsockopen メソッドを見てみましょう。
if($gcookie=="" && !empty($rfurl)) $gcookie = RefurlCookie($rfurl);
$sessionQuery = "GET $gquery HTTP/1.1rn";
$sessionQuery .= "ホスト: $ghostrn";
$sessionQuery .= "リファラー: $rfurlrn";
$sessionQuery .= "受け入れる: */*rn";
$sessionQuery .= "ユーザーエージェント: Mozilla/4.0 (互換性; MSIE 5.00; Windows 98)rn";
$sessionQuery .= "接続: Keep-Alivernrn";
$errno = "";
$errstr = "";
$url ='http://www.moko.cc';
$m_fp = fsockopen($url,80,$errno,$errstr,10);
fwrite($m_fp,$sessionQuery);
関数 RefurlCookie($gurl){
グローバル $gcookie,$lastRfurl;
$gurl = トリム($gurl);
if(!empty($gcookie) && $lastRfurl==$gurl) return $gcookie;
else $lastRfurl=$gurl;
if(trim($gurl)=='') return '';
$urlinfos = GetHostInfo($gurl);
$ghost = $urlinfos['ホスト'];
$gquery = $urlinfos['クエリ'];
$sessionQuery = "GET $gquery HTTP/1.1rn";
$sessionQuery .= "ホスト: $ghostrn";
$sessionQuery .= "受け入れる: */*rn";
$sessionQuery .= "ユーザーエージェント: Mozilla/4.0 (互換性; MSIE 5.00; Windows 98)rn";
$sessionQuery .= "接続: Closernrn";
$errno = "";
$errstr = "";
$m_fp = fsockopen($ghost, 80, $errno, $errstr,10) または die($ghost.'
');
fwrite($m_fp,$sessionQuery);
$lnum = 0;
//获取详细应答头
$gcookie = "";
while(!feof($m_fp)){
$line = トリム(fgets($m_fp,256));
if($line == "" || $lnum>100) ブレーク;
他{
if(エレギ("^クッキー",$line)){
$gcookie = $line;
休憩;
}
}
}
fclose($m_fp);
}
このような言葉は、写真が盗まれた親機の写真を保存することができます。
http://www.bkjia.com/PHPjc/630485.html