首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >PHP网络工具- Curl

PHP网络工具- Curl
EN

Stack Overflow用户
提问于 2014-01-01 14:43:57
回答 1查看 203关注 0票数 0

我正在考虑创建一个网站,可以预先形成一些基本的网络测试服务器/客户端。

我使用php运行以下测试:

  • Ping
  • 拉塞鲁特
  • 挖坑
  • 卷曲

例如,使用curl,如果我要从命令行排除网络问题,我通常使用以下命令:

代码语言:javascript
复制
curl -Ik <website-url/ip-address>

这将返回:

代码语言:javascript
复制
HTTP/1.1 200 OK
Date: Wed, 01 Jan 2014 14:30:13 GMT
Server: Apache/2.2.22 (Ubuntu)
X-Powered-By: PHP/5.3.10-1ubuntu3.8
X-Pingback: http://<ip-address>/xmlrpc.php
Link: <http://<ip-address>/?p=83>; rel=shortlink
Vary: Accept-Encoding
Content-Type: text/html; charset=UTF-8

到目前为止,我已经创建了一个基本的curl函数,它只对一个网站进行卷曲并显示该网站:

代码语言:javascript
复制
public static function curl($host) {
    $ch = curl_init($host);
    $fp = fopen("index.html", "w");

    curl_setopt($ch, CURLOPT_FILE, $fp);
    curl_setopt($ch, CURLOPT_HEADER, 0);

    curl_exec($ch);
    curl_close($ch);
    fclose($fp);
}

是否有任何简单的方法来显示上面列出的命令行示例返回的类似信息?

为了澄清这一点,我想创建一个php函数,它可以卷曲一个网站,如果可能的话,可以以类似于命令行的方式传递参数。因此,默认情况下,它只执行上面的PHP代码,但是如果选中某个参数,则返回headers或允许curl执行“不安全”的SSL连接和传输,就像-I或-k参数在命令行上传递给curl一样。

此外,任何其他网络工具的好想法,包括在这个工具将是很好的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-01 15:38:57

你可以看看

setopt

查看PHP的curl上所有可用的选项。基本上,命令行上的所有可用选项都可以通过

代码语言:javascript
复制
curl_setopt

从你的问题上看,在我看来,你只需要测试一个URL并检索标题。

您可以按如下方式重写函数,避免使用“索引”文件,但只需将标题检索到变量中并从函数中返回。

代码语言:javascript
复制
public static function curl($host) {
    $ch = curl_init($host);

    curl_setopt($ch, CURLOPT_RETURNTRANSFER,    true);
    curl_setopt($ch, CURLOPT_NOBODY,            true);
    curl_setopt($ch, CURLOPT_HEADER,            true);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,    false);

    $output = curl_exec($ch);
    curl_close($ch);

    return $output;
}

备选方案如下:

RETURNTRANSFER:检索的数据为RETURNTRANSFER,为curl_exec

没有人:只检索标题,而不是主体,相当于命令行中的-I

SSL_VERIFYPEER:相当于命令行中的-k

标题:检索标头

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20869772

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档