php判断服务器文件是否存在,PHP判断远程文件是否存在

这篇博客介绍了如何检查远程服务器上的文件是否存在,重点比较了curl_init、fsockopen和fopen三种方法的使用。curl_init在性能和资源消耗上更为推荐,但需要服务器支持;fsockopen则是一种专业的远程文件检查方法,同样需要服务器开启特定功能。文章提醒开发者注意选择合适的方法,并考虑服务器性能影响。
摘要由CSDN通过智能技术生成

我们要处理的是判断一个远程服务器文件是否是存在,而不是自己本同服务器目录了,如果判断远程服务器的文件上否存在我们需要使用到curl_init,fsockopen,fopen方法,下面我来给大家举例说明。

fopen函数

fopen() 函数打开文件或者 URL。

如果打开失败,本函数返回 FALSE。

语法

fopen(filename)filename 规定要打开的文件或 URL。

从这个函数的说明来看是支持url的,代码如下

 代码如下复制代码

$url = 'http://www.xxx.com/images/test.jpg';

if( @fopen( $url, 'r' ) )

{

echo 'File Exits';

}

else

{

echo 'File Do Not Exits';

}

?>

这样的写个人很不推荐哦,因为它这们很是浪费服务器性能资源的。

curl函数

例子

 代码如下复制代码
<?php

$url2 = 'http://www.jquerycn.cn/ test.jpg';

$ch = curl_init();

$timeout = 10;

curl_setopt ($ch, CURLOPT_URL, $url2);

curl_setopt($ch, CURLOPT_HEADER, 1);

curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);

$contents = curl_exec($ch);

//echo $contents;

if (preg_match("/404/", $contents)){

echo '文件不存在';

}

?>

小提示,不过此函数需我服务器开启才可用哦

推荐使用此方法哦,还有一种利用fsockopen 这种是专业的远程采集版了,

 代码如下复制代码

$url = "http://www.jquerycn.cn /.gif";

$info = parse_url($url);

$fp = fsockopen($info['host'], 80,$errno, $errstr, 30);

fputs($fp,"GET {$info['path']} HTTP/1.1rn");

fputs($fp, "Host: {$info['host']}rn");

fputs($fp, "Connection: closernrn");

$headers = array();

while(!feof($fp)) {

$line = fgets($fp);

if($line != "rn") {

$headers[] = $line;

}else {

break;

}

}

echo "

";

print_r($headers);

小提示,不过此函数需我服务器开启才可用哦

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值