189 8069 5689

php接收head数据 php的header函数

php的curl如何使用head协议来获取资源的大小等信息

其实curl里面早就有对HEAD协议的支持// 只需要在你的代码中加上这样一行,就会自动选择head协议

成都创新互联秉承实现全网价值营销的理念,以专业定制企业官网,网站建设、网站制作小程序定制开发,网页设计制作,移动网站建设全网营销推广帮助传统企业实现“互联网+”转型升级专业定制企业官网,公司注重人才、技术和管理,汇聚了一批优秀的互联网技术人才,对客户都以感恩的心态奉献自己的专业和所长。

curl_setopt($ch, CURLOPT_NOBODY, true);

如果你要读取

Content-Length

,那么只需要在curl_exec后// 读取的header里的Content-Length值

$size = curl_getinfo($ch, CURLINFO_CONTENT_LENGTH_DOWNLOAD);

需要说明的是HEAD协议虽然被大部分服务器支持,但也不是说所有的服务器都支持,有的服务器为了防抓取,在设置中干掉了这个协议。而

Content-Length

也不是必须的字段,你应该做到如果有这个值,而且超过了最大值,可以返回错误,如果没有这个值,或者没有超过最大值,就必须自己通过已经下载的内容大小来判断。

至于你说的最大资源下载长度,我还没看到这个设置项,不过这个问题有一个更加美好的解决方案,那就是用到

CURLOPT_HEADERFUNCTION和CURLOPT_WRITEFUNCTION

两个回调,那么就只需要一次请求即可完成所有的判断,而且可以随时断掉$size = 0;$max_size = 123456;

curl_setopt($ch, CURLOPT_HEADERFUNCTION, function ($ch, $str) {

// 第一个参数是curl资源,第二个参数是每一行独立的header!

list ($name, $value) = array_map('trim', explode(':', $str, 2));

$name = strtolower($name);

// 判断大小啦

if ('content-length' == $name) {

if ($value $max_size) {

return 0; // 返回0就会中断读取}}});

// 对于没有content-length的,我们一边读取一边判断

curl_setopt($ch, CURLOPT_WRITEFUNCTION, function ($ch, $str) use ($size) {

$len = strlen($str);

$size += $len;

if ($size $max_size) {

php怎样接收输入的数据

1.html

内容:

html

head

/head

body

form action="2.php" method="post"

input type="text" name="user" /

input type="submit" value="提交"

/form

/body

/html

2.php

内容:

echo $_POST['user'];

可以用get传,但是相对于的php页面也要用$_GET 接收。

PHP怎么接收数据

三中接受方式:

$_GET    //get过来的数据

$_POST  //post过来的数据

file_get_contents("php://input")   //接口过来的xml等字符串数据用这个接

这三个方法足以接受任何数据了,具体你还要百度一下用法


网站名称:php接收head数据 php的header函数
标题来源:http://jkwzsj.com/article/hjpies.html

其他资讯