PHP   发布时间:2022-04-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了php-在函数内部使用时CURL不起作用大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

我正在尝试使用以下代码执行curl.

@H_209_4@mainFunction{
  .
  .
  $url = strtolower($request->get('url', NULL));
  $html_output= $this->startURLcheck($url);
  .
  .
}

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);
 $html_output = curl_exec($ch);
}

当我直接给出字符串URL时,它工作正常.但是然后我通过未执行的函数curl传递了字符串数据. curl_error也没有显示任何错误.我尝试了很多对字符串进行编码和解码的方法,但结果相同.我做错了吗?我在Windows上使用XAMPP服务器.

我从另一个函数的HTML发布请求获取URL后,将uRL传递给此函数.

解决方法:

问题在于您的函数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中的“ pleeze”前有非法空格,并且在$url赋值末尾缺少分号.

希望这可以帮助.祝好运.

大佬总结

以上是大佬教程为你收集整理的php-在函数内部使用时CURL不起作用全部内容,希望文章能够帮你解决php-在函数内部使用时CURL不起作用所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: