PHP如何判斷遠端圖片檔案是否存在
fopen()方法
最簡單的方法就是用fopen(),看看檔案能否開啟,能打就檔案當然就存在。
<?php
$url = 'http://www.nowamagic.net/images/test.jpg';
if( @fopen( $url, 'r' ) )
{
echo 'File Exits';
}
else
{
echo 'File Do Not Exits';
}
?>
fopen() 函式開啟檔案或者 URL。如果開啟失敗,函式會返回 FALSE。
語法:fopen(filename,mode,include_path,context)
引數 | 描述 |
---|---|
filename | 必需。規定要開啟的檔案或 URL。 |
mode | 必需。規定要求到該檔案/流的訪問型別。可能的值見下表。 |
include_path | 可選。如果也需要在 include_path 中檢索檔案的話,可以將該引數設為 1 或 TRUE。 |
context | 可選。規定檔案控制代碼的環境。Context 是可以修改流的行為的一套選項。 |
mode 引數的可能的值:
mode | 說明 |
---|---|
"r" | 只讀方式開啟,將檔案指標指向檔案頭。 |
"r+" | 讀寫方式開啟,將檔案指標指向檔案頭。 |
"w" | 寫入方式開啟,將檔案指標指向檔案頭並將檔案大小截為零。如果檔案不存在則嘗試建立之。 |
"w+" | 讀寫方式開啟,將檔案指標指向檔案頭並將檔案大小截為零。如果檔案不存在則嘗試建立之。 |
"a" | 寫入方式開啟,將檔案指標指向檔案末尾。如果檔案不存在則嘗試建立之。 |
"a+" | 讀寫方式開啟,將檔案指標指向檔案末尾。如果檔案不存在則嘗試建立之。 |
"x" | 建立並以寫入方式開啟,將檔案指標指向檔案頭。如果檔案已存在,則 fopen() 呼叫失敗並返回 FALSE,並生成一條 E_WARNING 級別的錯誤資訊。如果檔案不存在則嘗試建立之。這和給底層的 open(2) 系統呼叫指定 O_EXCL|O_CREAT 標記是等價的。此選項被 PHP 4.3.2 以及以後的版本所支援,僅能用於本地檔案。 |
"x+" | 建立並以讀寫方式開啟,將檔案指標指向檔案頭。如果檔案已存在,則 fopen() 呼叫失敗並返回 FALSE,並生成一條 E_WARNING 級別的錯誤資訊。如果檔案不存在則嘗試建立之。這和給底層的 open(2) 系統呼叫指定 O_EXCL|O_CREAT 標記是等價的。此選項被 PHP 4.3.2 以及以後的版本所支援,僅能用於本地檔案。 |
fopen() 將 filename 指定的名字資源繫結到一個流上。如果 filename 是 "scheme://..." 的格式,則被當成一個 URL,PHP 將搜尋協議處理器(也被稱為封裝協議)來處理此模式。如果該協議尚未註冊封裝協議,PHP 將發出一條訊息來幫助檢查指令碼中潛在的問題並將 filename 當成一個普通的檔名繼續執行下去。
如果 PHP 認為 filename 指定的是一個本地檔案,將嘗試在該檔案上開啟一個流。該檔案必須是 PHP 可以訪問的,因此需要確認檔案訪問許可權允許該訪問。如果激活了安全模式或者 open_basedir 則會應用進一步的限制。
如果 PHP 認為 filename 指定的是一個已註冊的協議,而該協議被註冊為一個網路 URL,PHP 將檢查並確認 allow_url_fopen 已被啟用。如果關閉了,PHP 將發出一個警告,而 fopen 的呼叫則失敗。
一個fopen的用法
<?php
$file = fopen("test.txt","r");
$file = fopen("/home/test/test.txt","r");
$file = fopen("/home/test/test.gif","wb");
$file = fopen("http://www.example.com/","r");
$file = fopen("ftp://user:[email protected]/test.txt","w");
?>
但是如果圖片資源所在伺服器掛掉了,這個函式會一直等待,所以我們需要一個備用方案。
CURL 方法
CURL是個很好用的類庫,下面看下如何用它來判斷。
<?php
$url2 = 'http://www.nowamagic.net/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 '檔案不存在';
}
?>
curl_exec()執行完之後如果檔案不存在,會返回如下資訊:
HTTP/1.1 404 Not Found
Date: Tue, 14 Feb 2012 05:08:34 GMT
Server: Apache
Accept-Ranges: bytes
Content-Length: 354
Content-Type: text/html
用正則看看是否有404,有的話檔案就不存在。
相關推薦
PHP如何判斷遠端圖片檔案是否存在
fopen()方法 最簡單的方法就是用fopen(),看看檔案能否開啟,能打就檔案當然就存在。 <?php $url = 'http://www.nowamagic.net/images/test.jpg'; if( @fopen( $url, 'r' ) )
php 獲取遠端圖片大小
/** * 獲取遠端圖片的寬高和體積大小 * * @param string $url 遠端圖片的連結 * @param string $type 獲取遠端圖片資源的方式, 預設為 curl 可選 fread * @para
php 獲取遠端圖片大小 寬高
/** * 獲取遠端圖片的寬高和體積大小 * * @param string $url 遠端圖片的連結 * @param string $type 獲取遠端圖片資源的方式, 預設為 curl 可選 fread * @param bo
通過PHP批量下載圖片檔案
最近一直很忙,遇到一個手工活,需要下載一些遠端的圖片,一共一百多張,如果通過手工一張一張的儲存,也太耗費時間了,於是上網google了一把,找到PHP批量下載圖片檔案的方法,原文是出自平凡世界部落格的一片關於如何使用PHP批量下載CSS檔案中的圖片的文章。經過研究改寫了一下就
高效判斷遠端圖片是否存在
高效判斷遠端圖片是否存在 function remoteImageExist($url) { // $exif_imagetype = [ // 1 => 'GIF', // 2 => 'JPG', // 3 => 'PN
PHP下載遠端圖片及儲存到原生代碼
摘要:本在使用 PHP 做簡單的爬蟲的時候,我們經常會遇到需要下載遠端圖片的需求,所以下面來簡單實現這個需求。文主要和大家介紹了PHP實現下載遠端圖片的方法,小編覺得挺不錯的,現在分享給大家,也給大家做個參考,希望能幫助到大家!!!!1.使用 curl比如我們有下面這兩張圖片
php獲取遠端圖片並下載儲存到本地
/** *功能:php完美實現下載遠端圖片儲存到本地 *引數:檔案url,儲存檔案目錄,儲存檔名稱,使用的下載方式 *當儲存檔名稱為空時則使用遠端檔案原來的名稱 */ function getImage($url,$save_dir='',$filename='',$typ
PHP儲存遠端圖片到本地
方法一參考: // Function: 獲取遠端圖片並把它儲存到本地 // 確定您有把檔案寫入本地伺服器的許可權 // 變數說明: // $url 是遠端圖片的完整URL地址,不能為空。 // $filename 是可選變數: 如果為空,本地檔名將基於時間和日期 /
PHP實現遠端下載檔案到本地
1. /* *功能:php多種方式完美實現下載遠端圖片儲存到本地 *引數:檔案url,儲存檔名稱,使用的下載方式 *當儲存檔名稱為空時則使用遠端檔案原來的名稱 */ function getImage($url,$filename='',$type=0){ if(
python fabric 判斷遠端一個檔案是否存在並做處理
一般使用fabric,大多是跟遠端進行的互動,而在互動的時候,除了簡單程式碼蘊含的邏輯之外,時長也伴隨著檔案的傳輸,而且檔案中可能還有不少不小的檔案。 我們是否可以進行判斷,如果檔案存在,那麼我們就不
php採集遠端圖片儲存到本地
/** * 採集遠端圖片 * @param string $url 遠端檔案地址 * @param string $f
php判斷本地及遠端檔案是否存在
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
PHP獲取遠端檔案大小 如果加判斷檔案大小以KB MB GB
<?php function sizecount($filesize) { if($filesize >= 1073741824) { $filesize = round($filesize / 1073741824 * 100) / 100 . ' g
PHP正則采集圖片並保存
con lap sta php正則 exists conn hid 文件名 time <?php /* *功能:php完美實現下載遠程圖片保存到本地 *參數:文件url,保存文件目錄,保存文件名稱,使用的下載方式 *當保存文件名稱為空時則使用遠程文件原來的名稱
php判斷上傳文件是不是圖片,如果是,返回圖片格式
int 格式 unpack char .com intval 圖片格式 unp filename /判斷文件是不是圖片格式@param fileName 文件名@return array 如果code為1,是圖片;否則不是圖片@author lee complet@163.
php自動匹配圖片網址,並自動下載儲存本地化或遠端上傳到其它伺服器
在phpwind中.如果直接發表圖片網址.會自動轉為 以下的標籤形式[img]/attachment/img_85186769.jpg[/img] 所以.可以通過php正則匹配[img]中的網址,並把圖片網址對應的圖片,自動儲存到本地,然後通過php的ftp_put()函式,遠端ftp上
php下刪除真實檔案或圖片
//我使用的是thinkphp框架 function delpic(){ header("Content-Type:text/html;charset=utf-8"); $pic = "./Public/Uploads/imgs/cadres/img/201
php判斷檔案或者目錄是否可寫
php判斷檔案或者目錄是否可寫 解決方法: 1.用法 $check=array('plant/config/db.php','plant/update/'); $count=count($check); for($i=0;&n
獲取遠端圖片的寬高和體積大小(php封裝方法)
/** * 獲取遠端圖片的寬高和體積大小 * * @param string $url 遠端圖片的連結 * @param string $type 獲取遠端圖片資源的方式, 預設為 curl 可選 fread * @param boolean $isGetFiles