我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...

苏南大叔在本文中给大家带来个,非常基础的php函数file_get_contents,这个函数,估计大家都用过,都会用吧。

苏南大叔:php函数,file_get_contents() 如何设置header信息? - php-file-get-contents
php函数,file_get_contents() 如何设置header信息?(图1-1)

函数的说明见这里:

如果说用这个函数,发送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的追求自由化,可能正是这两种本是同根生的语言的核心区别所在吧。

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。

 【福利】 腾讯云最新爆款活动!1核2G云服务器首年50元!

 【源码】本文代码片段及相关软件,请点此获取更多信息

 【绝密】秘籍文章入口,仅传授于有缘之人   php