我正在考虑创建一个网站,可以预先形成一些基本的网络测试服务器/客户端。
我使用php运行以下测试:
例如,使用curl,如果我要从命令行排除网络问题,我通常使用以下命令:
curl -Ik <website-url/ip-address>这将返回:
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函数,它只对一个网站进行卷曲并显示该网站:
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一样。
此外,任何其他网络工具的好想法,包括在这个工具将是很好的。
发布于 2014-01-01 15:38:57
你可以看看
setopt
查看PHP的curl上所有可用的选项。基本上,命令行上的所有可用选项都可以通过
curl_setopt从你的问题上看,在我看来,你只需要测试一个URL并检索标题。
您可以按如下方式重写函数,避免使用“索引”文件,但只需将标题检索到变量中并从函数中返回。
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
标题:检索标头
https://stackoverflow.com/questions/20869772
复制相似问题