2013-05-05 89 views
0

如果網站使用基本身份驗證,如何使用PHP獲取網站源代碼?通過身份驗證URL通過PHP獲取HTML源代碼

<?php 
$ch = curl_init("http://domain.com/password.html"); 
$fp = fopen("source.txt", "w"); 
curl_setopt($ch, CURLOPT_USERPWD, "username:password"); 
curl_setopt($ch, CURLOPT_FILE, $fp); 
$output = curl_exec($ch); 
curl_close($ch); 
fclose($fp); 
?> 

我在做什麼錯?

+1

您是否收到任何錯誤?預期的結果是什麼?你究竟得到了什麼? – 2013-05-05 04:14:11

+0

我得到空文件(source.txt)...並沒有錯誤... – mirsad 2013-05-05 04:19:18

+0

你似乎沒有寫信給source.txt。也許你錯過了'fwrite($ fp,$ output);'? – 2013-05-05 04:20:11

回答

0

我不認爲你錯過了一個fwrite,因爲PhpMyCoder建議curl寫入curl_exec上的文件,只要CURLOPT_FILE設置爲文件句柄即可。

可能發生的問題是重定向問題:某些基本身份驗證模型會導致發生重定向,如果重定向沒有任何HTML數據傳遞,則可能會解釋您的空文件。

嘗試添加行

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 

與你的其他捲曲選項,看看是否有幫助。

+0

不起作用,即使我添加了這一行:curl_setopt($ ch,CURLOPT_FOLLOWLOCATION,true); – mirsad 2013-05-05 10:00:56

+0

很奇怪,我在本地運行你的代碼(使用CURLOPT_FOLLOWLOCATION設置),它工作正常。目標服務器可能會出現一些奇怪的現象嗎? – notleigh 2013-05-05 12:51:49

+0

我正試圖在地址192.168.1.1的路由器上進行連接。是不是有點不同? – mirsad 2013-05-07 04:27:33