Discuz教程网

php如何判断文件是否存在,包括本地和远程文件

[复制链接]
authicon dly 发表于 2012-2-12 21:05:26 | 显示全部楼层 |阅读模式
当检查的文件是本地时用php自带的file_exists检查就行了,而此函数只能检查本地的函数是否存在,
所以如果要检查远程的文件是否存在只能用其它的方法了。
如果所服务器中php的配置开启了“allow_url_fopen = On”,即允许远端访问,那么也很简单,其实这个是php.ini中默认开启的,
用fopen函数判断就行了,能打开说明存在
如果allow_url_fopen = Off那么可以用socket通讯来解决
下面写的一个通用函数my_file_exists来检查文件是否存在
  1. function my_file_exists($file)
  2. {
  3. if(preg_match('/^http:\/\//',$file)){
  4. //远程文件
  5. if(ini_get('allow_url_fopen')){
  6. if(@fopen($file,'r')) return true;
  7. }
  8. else{
  9. $parseurl=parse_url($file);
  10. $host=$parseurl['host'];
  11. $path=$parseurl['path'];
  12. $fp=fsockopen($host,80, $errno, $errstr, 10);
  13. if(!$fp)return false;
  14. fputs($fp,"GET {$path} HTTP/1.1 \r\nhost:{$host}\r\n\r\n");
  15. if(preg_match('/HTTP\/1.1 200/',fgets($fp,1024))) return true;
  16. }
  17. return false;
  18. }
  19. return file_exists($file);
  20. }
复制代码
现在就可以调用此函数来检查文件的存在性,而不用去考虑是远程还是本地文件,或者是否禁用了allow_url_open

请测可用。。。




上一篇:提取DZ论坛所有会员邮箱小技巧
下一篇:home.hzzsp.com申请免费空间
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1314学习网 ( 浙ICP备10214163号 )

GMT+8, 2024-4-29 10:31

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表