2012-01-11 131 views
1

嗨我試圖添加私人代理支持的PHP類使用fsockopen而不是cURL,我有點失落了!fputs():提供的參數不是一個有效的流資源

我有以下代碼被產生誤差的每個的fputs線的警告:

fputs()的:提供的參數是不是一個有效資源流

任何幫助,將真正理解。

$proxyServer = '173.208.43.223'; 
$proxyPort = '8800'; 
$login = 'myuser'; // login name 
$passwd = 'mypassword'; // password 


$ptr = @fsockopen($proxyServer, $proxyPort, $errno, $errstr, $this->STIMEOUT); 
fputs($ptr,"Proxy-Authorization: Basic ".base64_encode("$login:$passwd") ."\r\n");   
$uri = $server.":".$port; 
fputs($ptr, 'GET '.$uri.' HTTP/1.0'."\r\n"); 
+0

刪除'@',記錄或顯示錯誤.... – Wrikken 2012-01-11 21:46:38

+0

刪除'@'。檢查'$ ptr'的值。檢查'$ errno'和$ $ errstr' – 2012-01-11 22:08:42

回答

1

你應該檢查$ ptr是否爲假,如果它是假的,則打破。一定要使用嚴格的比較(===)。

如果您刪除@ -sign,您將看到錯誤消息。 @標誌通常是錯誤代碼的指示符。

+0

我刪除了@符號,並且收到以下錯誤消息...'警告:fsockopen()[function.fsockopen]:無法連接到173.208.43.223:8800(連接計時out)' – 2012-01-11 21:59:25

+0

'$ this-> STIMEOUT'的值是什麼? – 2012-01-11 22:09:19

+0

它是..'var $ STIMEOUT = 10;' – 2012-01-11 22:41:27

0

我面臨同樣的問題,並通過做下面的事情來解決它。

刪除@符號,並將時間限制增加到30,它的工作原理。 :)

相關問題