Php 检查对象是否有效?

Php 检查对象是否有效?,php,amazon-web-services,amazon-s3,amazon-cloudfront,Php,Amazon Web Services,Amazon S3,Amazon Cloudfront,我对我的URL进行签名,以便它们只在设定的时间段内有效 当URL无效时,我得到: This XML file does not appear to have any style information associated with it. The document tree is shown below. <Error> <Code>AccessDenied</Code> <Message>Access denied</Messag

我对我的URL进行签名,以便它们只在设定的时间段内有效

当URL无效时,我得到:

This XML file does not appear to have any style information associated with it. The     document tree is shown below.
<Error>
<Code>AccessDenied</Code>
<Message>Access denied</Message>
</Error>

是否有方法检查对象URL是否有效,如果无效,我希望将用户重定向到一般错误页。

您可以使用函数
字符串文件\u获取内容(string$URL)
获取URL的输出, 然后检查响应是否是上面指定的(请记住,“此XML文件没有任何样式…”不是响应的一部分)

下面是一个例子:

<?php
    if (file_get_contents("http://example.com/foo/bar") === $errorResponse) {
        //There was an error
        header("Location: http://example.com/redirect/");
    }
?>


如果错误消息并不总是相同的,您可以使用XML解析器检查
是否存在,或者只使用正则表达式。

谢谢,我希望在相当大的视频上检查这一点。文件内容是否会在检查之前下载整个视频?有办法解决这个问题吗?如果它们是指向实际视频文件的链接,那么它会将整个内容加载到RAM中。您可以使用curl并设置一个非常短的
CURLOPT_超时时间
,然后,如果它完成了,解析文件,如果它没有完成,则文件可能非常大,请求正确完成。您是否可以转储响应代码?如果它不是HTTP 403,它仍然是好的?要获取状态代码,首先必须下载文档。如果没有错误,巨大的视频文件将加载到ram中,可能会使应用程序崩溃。当你说“有效”的时候,你是什么意思?一个签名的url怎么会变成“有效”以外的东西呢?你大概不是说“过期”,所以。。。您的签名URL在什么意义上无效?您的签名代码是否已损坏?您是否正在对不存在的内容的URL进行签名?请澄清。