php如何执行linux的curl指令

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php如何执行linux的curl指令相关的知识,希望对你有一定的参考价值。

php程序里面如何执行curl指令?
希望各位大侠给个答复。

PHP 中执行系统命令有几种方式:

    system():和 C 语言中的 system() 函数的用法是一样的,参数为命令行,成功则返回命令输出的最后一行,失败则返回 FALSE。

    shell_exec():执行命令,然后返回命令执行后的 stdout 输出。

    passthru():直接执行命令,然后将输出内容直接显示到网页上。


在这里,curl 的输出不用显示到网页上,所以 system() 可能比较合适。

参考技术A (1)可以使用system("curl",$return);
注: 如果用本函数启动一个程序并希望保持在后台运行,必须确保该程序的输出被重定向到一个文件或者其它输出流去,否则 PHP 会在程序执行结束前挂起。
(2)
或exec("curl",$return);
以上具体请查阅手册.
(3)其实php5内置了对curl的支持,编译curl扩展库,修改php.ini即可.详见参考资料.

参考资料:http://hi.baidu.com/27270543/blog/item/02b229ed905cab4378f055ea.html

本回答被提问者采纳
参考技术B curl 不是即时的输入输出的命令,php 有运行时间限制, curl 运行会导致 curl 运行时间不够而被杀掉的。

php 有运行 linux 命令的函数,记得 system() 是一个,之后还有另外一个。注意这两个命令是可以在 php.ini/php.conf 里面设置禁止使用的。

如何在php中获取curl请求的请求头信息及相应头信息

获取请求头信息,可以在curl_exec函数执行前,添加代码curl_setopt($ch,CURLINFO_HEADER_OUT,true);在curl_exec函数执行后,通过 curl_getinfo($ch,CURLINFO_HEADER_OUT) 来获取curl执行请求的请求数据。
获取响应头信息,可以在curl_exec函数执行前,添加代码 curl_setopt($ch, CURLOPT_HEADER, true);curl_setopt($ch, CURLOPT_NOBODY,true); 之后 通过curl_exec函数来获取响应头信息。获取设置 curl_setopt($ch, CURLOPT_NOBODY,false);然后对curl_exec获取的值通过\\r\\n\\r\\n进行分割截取第一部分即为响应头信息。
参考技术A <?php
    $url        = 'http://demo.zjmainstay.cn';
    $ch  = curl_init($url);
    curl_setopt($ch, CURLOPT_HEADER, true);        //返回头信息
    curl_setopt($ch, CURLOPT_NOBODY, true);        //不返回内容
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);  //返回数据不直接输出
    $content = curl_exec($ch);                    //执行并存储结果
    curl_close($ch);
    echo $content;
    
更多关于php cURL的内容,请参考我的博客《PHP cURL 应用》
http://www.zjmainstay.cn/php-curl

以上是关于php如何执行linux的curl指令的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Linux/Mac 中更新 PHP curl 扩展?

如何在php中获取curl请求的请求头信息及相应头信息

如何在 PHP / XAMPP 中启用 cURL

如何在 PHP / XAMPP 中启用 cURL

如何用php作Linux自动执行脚本

如何在 PHP 中使用 CURL 获取 SSL 证书信息?