問題是你的函數startURLCheck實際上並沒有返回主程序使用的值。更改最後一行:
function startURLCheck($url)
{
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
return curl_exec($ch);
}
在調用代碼,拿出 「$這個 - >」
$html_output = startURLCheck($url);
$ html_output現在包含捲曲調用的結果。
我假設你從某處複製並粘貼了這段代碼,因爲你的「mainFunction」聲明在語法上是不正確的,而你使用了「$ this->」而沒有指定startURLCheck是一個對象的方法。
事實上,如果你打算startURLCheck是一個對象的方法,你想它來設置$ html_output在對象上,這樣做:
<?php
class Example {
private $html_output;
function mainFunction()
{
$url='http://www.ebay.com/itm/Apple-iPhone-5-16GB-Black-Slate-Cricket-intl-UNLOCKED-pleeze-read-ad-/251252227033';
$this->startURLCheck($url);
echo "HTML output: " . $this->html_output;
}
function startURLCheck($url)
{
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
$this->html_output = curl_exec($ch);
}
}
$example = new Example();
$example->mainFunction();
我已經測試過的命令行代碼(不是在網頁)。如果您將其複製並粘貼到文件中,並使用php -r運行它,您將看到結果。 (注意,我沒有包含結束標籤,當文件只包含PHP代碼而沒有HTML時,結束標籤是可選的,事實上,在這種情況下,建議省略結束標籤,參見http://php.net/manual/en/language.basic-syntax.instruction-separation.php)
另請注意,在mainFunction的問題代碼中,在URL的「pleeze」之前有非法空格,並且在$ url賦值結尾缺少分號。
希望這會有所幫助。祝你好運。
$ url是超出了你的範圍:http://php.net/manual/en/language.variables.scope.php al所以'curl_error()'會給出更多關於curl調用錯誤的啓發信息。 –
你可以添加你用來定義函數的語法嗎? – Stu
確保你的函數si像runCurl($ url){...}然後在你的代碼中,你可以做runCurl('http:// foo/bar'); – chrislondon