php函数,file_get_contents() 如何设置header信息?
发布于 作者:苏南大叔 来源:程序如此灵动~ 我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...
苏南大叔在本文中给大家带来个,非常基础的php
函数file_get_contents
,这个函数,估计大家都用过,都会用吧。
函数的说明见这里:
如果说用这个函数,发送header
和收取header
呢?是不是大家都觉得这事就和file_get_contents
没有关系了,而必须使用curl
了?curl
的相关说明见这里:
设置header
这个file_get_contents
确实能够收发header
,和curl
其实是一样一样的。是不是有些惊讶?下面的例子,给大家演示的是发送cookie
,并解析出redirect
的网址的过程。
$keyword="file_get_contents";
$base_vrl = "http://php.net/manual-lookup.php?pattern=" . $keyword . "&scope=quickref";
$option = ["http" => ["header" => "Cookie:LAST_LANG=zh;"]];
$content_html = @file_get_contents($base_vrl, false, stream_context_create($option));
foreach ($http_response_header as $h) {
if (startWith($h, "Location: ")) {
$vrl = str_replace("Location: ", "", $h);
echo $vrl;
break;
}
}
function startWith($str, $needle) {
return strpos($str, $needle) === 0;
}
特殊说明
对于发送多个header
的情况,是使用\r\n
进行分割的。例如:
$opts = array(
'http'=>array(
'method'=>"GET",
'header'=>"Accept-language: en\r\n" .
"Cookie: foo=bar\r\n"
)
);
$context = stream_context_create($opts);
总结
这个代码中,凭空出现了个变量$http_response_header
,这事情非常的突然啊。发送cookie
的这段还比较好理解,毕竟是个大家不太常用的参数罢了。而这个凭空出现的新变量$http_response_header
,就出现的有些匪夷所思了。
这也就是hacklang一直诟病php
的地方,hack
语言中是不会出现引用类型的,也就是说肯定不会凭空出现一个变量。hack语言的追求严谨化,以及php的追求自由化,可能正是这两种本是同根生的语言的核心区别所在吧。
如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。