热搜:NVER node 开发 php

php curl_exec()

2024-09-02 20:05:01
php curl_exec()

公司写一个抛xml文档的程序  抛送url 用如下代码
                           $ch = curl_init();

                            curl_setopt($ch, CURLOPT_URL, "http://".$this->IP.$this->URL);

                            curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

                            curl_setopt($ch, CURLOPT_POST, 1);

                            curl_setopt($ch, CURLOPT_POSTFIELDS, $this->PARAMETER );

                            $ret = curl_exec($ch);

                            curl_close ($ch);

这段代码所有参数我看了没有问题
但curl_exec() 返回时false值
我查了下百度说要开启  extension=php_curl.dll 这个动态库
----
请问这个动态库是不是只有在windows下才有。我公司的环境是php 5.3.5   ,linux  环境, 我查了下公司php.ini没有这个选项。
请问在linux下 如何使用这个函数。要如何配置php.ino


回复讨论(解决方案)

linux下php扩展curl的安装

需要编译进去,具体方法可以网上查阅一下。

phpinfo(); 看下curl 是否开启了。

.dll 是windows的动态链接库。
linux下是需要  .so扩展。
search一下吧,不少教程

curl_exec()  返回 false 值
表示连接 "http://".$this->IP.$this->URL 失败
请检查 url 真实可用

如果是 curl 扩展没有加载,则会报函数未定义

请问linux下如何查看 curl是否可用?

$ch = curl_init();
不报错
echo $ch; 
输出 Resource id #...

就表示 curl 可用

专业一点就是
if(! function_exists('curl_init')) die 'curl 不可用';

我看到公司有curl.so 这个文件    。他的路径是:/usr/lib64/php/modules/curl.so
我在php.ini 中 加入extension=/usr/lib64/php/modules/curl.so  是否正确
--测试下 。还是不成功

"http://".$this->IP.$this->URL);
这个地址打印出来。

这个地址有效么?

 $ch = curl_init();                            curl_setopt($ch, CURLOPT_URL, "http://".$this->IP.$this->URL);                            curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);                            curl_setopt($ch, CURLOPT_POST, 1);                            curl_setopt($ch, CURLOPT_POSTFIELDS, $this->PARAMETER );                            $ret = curl_exec($ch);                            // 检查是否有错误发生                            if( curl_errno ( $ch )) {                            echo  'Curl error: '  .  curl_error ( $ch );                            }                            curl_close ($ch);


看看提示什么。

首先你应该从几个问题入手:
1)curl扩展是否开启,查看#7
2)curl的url是否正确

公司 curl.so文件都已经配置好。原因是这台服务器没有做连接外网的设置 谢谢 。已经调通了