存在检查并获取一次性URL的内容

时间:2016-01-08 13:20:50

标签: php

我知道有足够的方法可以在抛出常规file_get_contents之前检查网址是否存在,但有一个问题。所有人都试图请求文件,除了真假外,我什么也得不到。

当处理只能被调用一次的URL时(例如,如果他们有一个只能使用一次以避免重复攻击的授权令牌)那么我真的无法检查文件是否存在并再次请求获取实际输出

所以基本上我需要一种调用URL的方法,如果它返回它以某种方式可用然后给我输出,但如果不是不给我一个错误,但只返回false。

2 个答案:

答案 0 :(得分:0)

通常,您可以执行HTTP HEAD请求以获取标题的预览。

答案 1 :(得分:0)

$fd = @ fopen('url', 'rb');
if ($fd) {
    fclose($fd);
    $contents = file_get_contents('url');
}

UPD:

你应该写这样的东西(例如控制器的动作):

...
public function download()
{
    // chek auth and access rights
    // get and sanitize key
    // check existence of remote file
    // check key (try get available from DB)
    // get contents of existence file
    // set key (in DB) has used and/or generate new unique key for this file
}
...