2010-11-18 112 views
1

我有一個關於cURL的問題。我使用捲曲與此功能:cURL不能正常工作!

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 

只有這是造成的錯誤:「消息:curl_setopt()[function.curl-SETOPT]:CURLOPT_FOLLOWLOCATION不能被激活在safe_mode設置時或open_basedir的被設置爲」

所以我問我的託管服務提供商解決這個問題,他們做到了。但是,這真的很愚蠢,他們把一個「捲曲」文件放在我的bin目錄中。我不知道如何將這個包含在我的PHP腳本中:S。

從來沒有做過,但任何人都可以幫助我。我很困難。我希望我發佈足夠的信息!

Tnx in advanced!


Tnx爲所有偉大的答覆。但是,如何在此代碼中使用「exec()」?

// create a new cURL resource 
    $ch = curl_init(); 

    // set URL and other appropriate options 
    curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)"); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); 
    curl_setopt($ch, CURLOPT_TRANSFERTEXT, TRUE); 
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30); 
    curl_setopt($ch, CURLOPT_URL, $articleUrl); 
    curl_setopt($ch, CURLOPT_HEADER, 0); 
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 
    curl_setopt($ch, CURLOPT_MAXREDIRS, 5); 

    // grab URL and pass it to $grabArticle 
    $grabArticle = curl_exec($ch); 

編輯2: 奧凱,我幾乎得到它的工作:)。當我在膩子運行它工作得很好,但在我的PHP腳本沒有任何反應:(

我運行此:

$grabArticle = exec('/home/twittern/bin/curl -L -m 30 -w url_effective --max-redirs 5 http://fok.nl/415758'); 
echo $grabArticle; 

任何事情我做錯了

+0

那麼,他們只給你一個捲曲可執行文件?這聽起來像他們希望你用'exec'運行它。 – JAL 2010-11-18 20:42:11

+1

重新進行更新,您將不得不在命令行中重新構建這些選項,請參閱http://curl.haxx.se/docs/manpage.html – 2010-11-18 21:19:41

+0

嗯,那就是F * cked up:S。所以它會是這樣的:$ grabArticle = exec('/ home/twittern/bin/curl'。$ articleUrl。'-A -L'); – iSenne 2010-11-18 21:27:36

回答

3

而不是在PHP中使用內置cURL函數,他們要求您使用外部命令行版本。

使用PHP exec()函數來調用程序,命令行選項可以在curl man page上找到。

鑑於您可能需要完整的響應,您可能需要使用passthru()進行輸出緩衝或將輸出保存到(臨時)文件。

1

PHP捲曲沒有按「T依靠捲曲箱可用。(PHP支持,因爲默認情況下4.0.2捲曲)

你的託管服務提供商只需要確保你的PHP INI已經safe_mode關閉。

但考慮到處理方式(給你一個捲曲二進制),你應該使用exec()來調用它。

個人而言,我建議你找一個更好的主人。

+0

同意,但另一個主機是不是一個真正的選擇:)。 – iSenne 2010-11-18 20:54:10

1

您的供應商很爛。回撥他們,讓他們重新編譯php以包含curl支持。

否則,你會被直接調用curl卡住。

$result = exec("/bin/curl http://www.foobar.com"); 
+0

他有curl支持編譯,只是他有safe_mode或open_basedir生效。如果是共享主機,他們不太可能根據需要關閉這些安全措施。 – Orbling 2010-11-18 20:45:49

+0

我同意拜倫。吸:(真的很奇怪,因爲通常他們是非常有益的。它是一個經銷商託管平臺順便說一句:) – iSenne 2010-11-18 20:51:31

+0

有趣的是,如果他們離開安全模式,'exec()'也不會工作,會嗎? – 2010-11-18 21:19:04