访问php网页显示源代码_关于PHP中获取网页源代码的说明
PHP的fopen()方法將指定的文件資源綁定到一個流上。如果文件路徑是”scheme://…” 的格式,則被當成一個URL,PHP將搜索對應的協議處理器(也被稱為封裝協議)來處理此模式。因此可以通過fopen()方法來獲取大部分的網頁前臺源代碼。
但是,很多網站出于安全性考慮,在處理請求時,往往會對請求來源的合法性進行驗證,這個時候簡單的通過上述方式來獲取網頁源代碼時,將會被目標服務器拒絕。此時,我們就需要模擬HTTP的方式來發送GET/POST請求,從而合法得通過目標服務器的驗證,再通過獲取請求的響應輸出流來得到網頁前臺源代碼。
下面是利用fsockopen方法打開網站的Scoket連接,通過構造并發送HTTP報文頭來模擬HTTP情求來實現獲取網頁源代碼的方法:
// 需要訪問的網頁地址
$url = “http://www.example.com/index.html”;
// 打開網頁Scoket連接
$handler = fopen($url, "r");
if (!$handler) {
// 發送HTTP報文頭
$host = "www.example.com";
$request = "/index.html";
$header = "GET " . $request . " HTTP/1.1\r\n";
$header .= "Host: " . $host . "\r\n";
$header .= "Connection: Close\r\n\r\n";
$handler = fsockopen($host, 80);
fwrite($handler, $header);
}
// 讀取網頁響應數據
while (!feof($handler)) {
$line = fgets($handler, 1024);
echo($line);
}
// 關閉網頁Scoket連接
fclose($handler);
其中HTTP報文頭的結構可以根據網頁請求的具體需要來添加其它相關信息。
總結
以上是生活随笔為你收集整理的访问php网页显示源代码_关于PHP中获取网页源代码的说明的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: git for Mac安装(包含客户端软
- 下一篇: JQuery-layer web弹窗层