PHP file_get_contents 在我的服务器上被阻止
PHP file_get_contents blocked on my server
我在检索外部服务器发送给我的数据时遇到问题。我会更好地解释:为了更改数据库中记录的状态,我联系了一个外部应用程序,该应用程序将 header.
中的调用结果发送到我创建的应用程序
现在,我的问题是:如果我的服务器 file_get_contents("php://input")
被阻止或限制,我是否有替代解决方案来检索该数据?如果是,它是什么?
编辑:这是一个代码示例。
//the function will be called every time the external server calls my file
function remoteValidation(){
$requestData = file_get_contents("php://input");
if (isset($requestData) && !empty($requestData) && $requestData['signature'] == $this->savedSignature) {
// validation on the signature
} else {
throw new Exception ('The signature is not valid, or is empty!);
}
}
file_get_contents("php://input")
将为您提供 原始 数据,因此您将无法将其作为数组访问(如 $requestData['signature']
中)。您首先必须根据其 "real" 格式进行解析(如 json_decode
如果它是 JSON)。
替代方案 - 如果您绝对不能在您的服务器上使用 file_get_contents("php://input")
- 将使用 GET
请求 als @CD001 声明或可能使用请求 headers 传输您的信息。
如果您对外部服务器向您发送数据的方式没有影响,则可以使用 $HTTP_RAW_POST_DATA
- 但请注意,如果可以避免,则不应该这样做已弃用并已在 PHP7 中删除。
我在检索外部服务器发送给我的数据时遇到问题。我会更好地解释:为了更改数据库中记录的状态,我联系了一个外部应用程序,该应用程序将 header.
中的调用结果发送到我创建的应用程序现在,我的问题是:如果我的服务器 file_get_contents("php://input")
被阻止或限制,我是否有替代解决方案来检索该数据?如果是,它是什么?
编辑:这是一个代码示例。
//the function will be called every time the external server calls my file
function remoteValidation(){
$requestData = file_get_contents("php://input");
if (isset($requestData) && !empty($requestData) && $requestData['signature'] == $this->savedSignature) {
// validation on the signature
} else {
throw new Exception ('The signature is not valid, or is empty!);
}
}
file_get_contents("php://input")
将为您提供 原始 数据,因此您将无法将其作为数组访问(如 $requestData['signature']
中)。您首先必须根据其 "real" 格式进行解析(如 json_decode
如果它是 JSON)。
替代方案 - 如果您绝对不能在您的服务器上使用 file_get_contents("php://input")
- 将使用 GET
请求 als @CD001 声明或可能使用请求 headers 传输您的信息。
如果您对外部服务器向您发送数据的方式没有影响,则可以使用 $HTTP_RAW_POST_DATA
- 但请注意,如果可以避免,则不应该这样做已弃用并已在 PHP7 中删除。