小偷程式:把遠端網站上的資料(圖片,網頁及其他文件)抓取到本地,處理後再顯示
正則表達式:用於字串的模式分割、匹配、查找及替換操作。
相關函數:
int ereg ( string
$string [, array
&$regs ]
)若省略參數回傳的陣列,找出則傳回值為 True 否則 傳回 False與之對應 eregi() 不區分大小寫。
string file_get_contents
( bool $use_include_path =
false [, resource $context
[,
0 [, int $maxlen ]]]]]
)
讀取整個文件,例如:
用此函數可以取得網頁資訊他就是小偷程式的基礎。 例如:$url=file_get_contents("http://www.ubuntu.org.cn/index_kylin
");echo? 但是對於另一個網站:
http://www.alangzhong.com/index.html");
echo $url;?
發現很多的背景圖片是看不見的。 查看網頁原始碼我們發現,這是
src="/upload/201503/bb1234350 "/>
圖片的地址使用了相對路徑,而我們本地沒有這樣的文件,當然顯示不出來。
用正規表示式選定圖片,然後遠端位址取代相對路徑:
下面程式碼的逾時問題沒有解決。
<?php //ini_set('max_execution_time', '0'); //三者都没用啊,一直超时 //@ini_set('default_socket_timeout', 20000); //set_time_limit(2); $url=file_get_contents("http://www.alangzhong.com/index.html"); //echo $url; $fp = @fopen($url, "r") or die("超时"); //为什么不断超时 $contents = file_get_contents($url); eregi("<img width=\"116\" height=\"98\" src=\"/upload/201503/b123ec26-bb8f-43be-b5ad-cdf45153d053.png\"/>",$contents,$rg); // 远程地址替换相对路径 $rg[1]=str_replace("src=\"../upload/","src=\"http://www.alangzhong.com/index.html/upload/",$rg[1]); echo $rg[1]; ?>
以上就介紹了PHP 簡單的小偷程序,包括了方面的內容,希望對PHP教程有興趣的朋友有所幫助。