问题是您的函数 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);
}
在您的调用代码中,取出“$this->”
$html_output = startURLCheck($url);
$html_output 现在包含 curl 调用的结果。
我假设您从某个地方复制并粘贴了此代码,因为您的“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 中“pleeeze”之前有非法空格,并且您在 $url 分配末尾缺少分号。
希望这可以帮助。祝你好运。