Проблема в том, что ваша функция 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 теперь содержит результаты завитка вызова.
Я предположил, что вы скопировали и вставляли этот код откуда-то, так как ваше объявление «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 у вас есть незаконные пробелы перед «pleeze» в вашем URL-адресе, и вам не хватает точки с запятой в конце задания $ url.
Надеюсь, это поможет. Удачи.
$ url находится за пределами вашего scope: http://php.net/manual/en/language.variables.scope.php al поэтому 'curl_error()' даст более информативную информацию о том, что пойдет не так в curl call –
, можете ли вы добавить синтаксис, используемый для определения функции? – Stu
убедитесь, что ваша функция si похожа на runCurl ($ url) {...}, а затем в вашем коде вы можете выполнить runCurl ('http: // foo/bar'); – chrislondon