小编Jam*_*ell的帖子

检查字符串以查看文件是否存在于本地

如果可以,我有一个问题.我有一个名为变量的变量,例如$source,它包含文件的相对路径./uploads/2012/some-document.pdf

现在,这个$source变量将包含用户输入,通过$ _GET和$ _POST.我不希望人们输入URL,如果文件仅存在于本地服务器上,我只想做某事.

我的问题是,检查本地服务器上是否存在文件的最佳方法是什么?


这是我到目前为止所得到的:

1)file_exists可根据服务器的配置返回true,所以我可以用这一起stripos函数检查字符串的前几个charatcers是http://像这样:

if( file_exists($source) && stripos($source,'http://')!==0 ) {
    echo 'File exists on local';
}
Run Code Online (Sandbox Code Playgroud)

但是,缺点是我必须指定所有不同的URL类型,例如https://,http://和ftp://才安全.

2)我realpath用来获取文件的绝对路径,如果找不到,则返回false.这看起来非常可靠,但不是100%这是最好的应用程序

3)用于preg_replace首先删除字符串中的所有URL提及,然后简单地使用file_exists.虽然这可能是最安全的,但它很可能是最密集的,我宁愿不使用这种方法.

php

5
推荐指数
1
解决办法
2789
查看次数

标签 统计

php ×1