方式有:php
<?php function getImage($url,$filename="") { if ($url == "") return false; if ($filename === "") { $ext_name = strrchr($url,'.'); //獲取圖片的擴展名 if (!in_array($ext_name, ['.gif', '.jpg', '.bmp', '.png'])) { return false; } $filename = time() . $ext_name; } // 開始捕獲 // 文件 保存路徑 ob_start(); /* * ob_start()在服務器打開一個緩衝區來保存全部的輸出。 * 因此在任什麼時候候使用echo ,輸出都將被加入緩衝區中, * 直到程序運行結束或者使用ob_flush()來結束。 * 而後在服務器中緩衝區的內容纔會發送到瀏覽器,由瀏覽器來解析顯示。 * * 使用ob_start()把輸出那同輸出到緩衝區,而不是到瀏覽器。 */ readfile($url); /* * readfile() 函數輸出一個文件。 *該函數讀入一個文件並寫入到輸出緩衝。 */ $img_date = ob_get_contents(); /* * 而後用ob_get_contents獲得緩衝區的數據。 */ ob_end_clean(); /* * 函數ob_end_clean 會清除緩衝區的內容,並將緩衝區關閉,但不會輸出內容。 */ $size = strlen($img_date); //文件大小 $local_file = fopen($filename, 'a'); fwrite($local_file, $img_date); fclose($local_file); return $filename; } echo getImage("http://www.mysqltutorial.org/wp-content/uploads/2008/05/mysqltutorial.gif");
另外還有:mysql
<?php $img = file_get_contents('http://www.mysqltutorial.org/wp-content/uploads/2008/05/mysqltutorial.gif'); file_put_contents('a.gif', $img); echo '<img src="a.gif">';
這段抓取遠程圖片至本地在運行中360極速、火狐、谷歌、獵豹沒有出現錯誤,能夠正常運行。sql
還有:瀏覽器
<?php $img = file_get_contents('http://www.mysqltutorial.org/wp-content/uploads/2008/05/mysqltutorial.gif'); echo $img;
該段代碼在360極速瀏覽器中運行沒有出現錯誤,可是在火狐、谷歌、獵豹瀏覽器中出現了「亂碼」。服務器