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

<p>当检查的文件是本地时用php自带的file_exists检查就行了,而此函数只能检查本地的函数是否存在,<br/>所以如果要检查远程的文件是否存在只能用其它的方法了。<br/>如果所服务器中php的配置开启了&amp;ldquo;allow_url_fopen = On&amp;rdquo;,即允许远端访问,那么也很简单,其实这个是php.ini中默认开启的,<br/>用fopen函数判断就行了,能打开说明存在<br/>如果allow_url_fopen = Off那么可以用socket通讯来解决<br/>下面写的一个通用函数my_file_exists来检查文件是否存在</p><pre class="brush:php;toolbar:false">functionmy_file_exists($file) { if(preg_match(&#39;/^http:///&#39;,$file)){ //远程文件 if(ini_get(&#39;allow_url_fopen&#39;)){ if(@fopen($file,&#39;r&#39;))returntrue; } else{ $parseurl=parse_url($file); $host=$parseurl[&#39;host&#39;]; $path=$parseurl[&#39;path&#39;]; $fp=fsockopen($host,80,$errno,$errstr,10); if(!$fp)returnfalse; fputs($fp,&quot;GET{$path}HTTP/1.1rnhost:{$host}rnrn&quot;); if(preg_match(&#39;/HTTP/1.1200/&#39;,fgets($fp,1024)))returntrue; } returnfalse; } returnfile_exists($file); }</pre><p>现在就可以调用此函数来检查文件的存在性,而不用去考虑是远程还是本地文件,或者是否禁用了allow_url_open<br/></p>
RangeTime:0.033012s
RangeMem:205.08 KB
返回顶部 留言