为什么我在php中得到空的全局服务器阵列?

为什么我在php中得到空的全局服务器阵列?,php,Php,我在社交网站上分享facebook上的链接。 当我放置个人网站的链接时,它会从我的web服务器调用控制器: .../controller/method 在方法中有一个全局数组$\u服务器: $text = json_encode($_SERVER); file_put_contents($file, $text); 我尝试将数据写入文件$file。 当Facebook绘制我的网页时,为什么我会得到空的$text?因此,Facebook不发送头http?$\u服务器是一个数组,而不是一个对象,

我在社交网站上分享facebook上的链接。 当我放置个人网站的链接时,它会从我的web服务器调用控制器:

.../controller/method
方法
中有一个全局数组
$\u服务器

$text = json_encode($_SERVER);
file_put_contents($file, $text);
我尝试将数据写入文件
$file

当Facebook绘制我的网页时,为什么我会得到空的
$text
?因此,Facebook不发送头http?

$\u服务器是一个数组,而不是一个对象,即使请求没有“头”,它仍然会显示由服务器设置配置的详细信息(如Apache、nginx等)。如果可以手动点击,请使用
var\u dump($\u SERVER)进行检查和/或
var_dump(json_decode($text))在浏览器中。如果得到输出,请检查服务器日志;您可能无法写入服务器用户指定的
$file
路径。您在
$file
中是否有有效且可写的路径名?我检查了它,文件已写入,但当我从社交网络将此控制器称为faceook时,我得到的数据是空的,除非你正在操作
$\u服务器
或者有一些时髦的服务器配置,否则只有当链接来自“社交网络”时,它才是空的是没有意义的。服务器根据服务器上的详细信息(服务器IP、请求IP)、关于请求的详细信息(URL的分解)和请求的详细信息(头、查询字符串等)在内部创建此文件。只有后者会被忽略,因为请求是在没有请求头的情况下发出的。Facebook不应该在现实中操纵这一点;它是服务器的一部分。