php如何判斷檔案是否存在,包括本地和遠端檔案
當檢查的檔案是本地時用php自帶的file_exists檢查就行了,而此函式只能檢查本地的函式是否存在,
所以如果要檢查遠端的檔案是否存在只能用其它的方法了。
如果所伺服器中php的配置開啟了“allow_url_fopen = On”,即允許遠端訪問,那麼也很簡單,其實這個是php.ini中預設開啟的,
用fopen函式判斷就行了,能開啟說明存在
如果allow_url_fopen = Off那麼可以用socket通訊來解決
下面寫的一個通用函式my_file_exists來檢查檔案是否存在
function my_file_exists($file) { if(preg_match('/^http:\/\//',$file)){ //遠端檔案 if(ini_get('allow_url_fopen')){ if(@fopen($file,'r')) return true; } else{ $parseurl=parse_url($file); $host=$parseurl['host']; $path=$parseurl['path']; $fp=fsockopen($host,80, $errno, $errstr, 10); if(!$fp)return false; fputs($fp,"GET {$path} HTTP/1.1 \r\nhost:{$host}\r\n\r\n"); if(preg_match('/HTTP\/1.1 200/',fgets($fp,1024))) return true; } return false; } return file_exists($file); }
現在就可以呼叫此函式來檢查檔案的存在性,而不用去考慮是遠端還是本地檔案,或者是否禁用了allow_url_open
相關推薦
php如何判斷檔案是否存在,包括本地和遠端檔案
當檢查的檔案是本地時用php自帶的file_exists檢查就行了,而此函式只能檢查本地的函式是否存在, 所以如果要檢查遠端的檔案是否存在只能用其它的方法了。 如果所伺服器中php的配置開啟了“allow_url_fopen = On”,即允許遠端訪問,那麼也很簡單,其實這
php判斷本地及遠端檔案是否存在
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
利用curl下載檔案,包括Get和Post
#define STOP_DOWNLOAD_AFTER_THIS_MANY_BYTES 60000000000 #define MINIMAL_PROGRESS_FUNCTIONALITY_INTERVAL 3 &n
用eclipse生成maven專案,在本地生成.git檔案,把倉庫檔案推送到gitlub遠端
1. 滑鼠右擊專案名---Team---share project 2.出現share project---Git---next 3.勾上use or create repository in parent folder of project---單擊create reposit
python 使用 urllib.urlretrieve()下載網路圖片,在本地開啟提示檔案損壞無法開啟
程式碼如下: url = ‘http://www.xiaohuar.com/d/file/20170318/a5e3460073df58ed208ae3ec2ff46d07.jpg’ path_name ='xx' urllib.urlretrieve(url, 'D:\i
判斷使用者許可權後,如何高效的提供檔案下載
問題:某些檔案只希望特定使用者可以下載,那麼下載之前必須進行許可權判斷。判斷通過時,跳轉到被下載檔案的真實地址肯定不行,這相當於沒有做許可權限制了。一般的做法是讀取被下載的檔案然後輸出給使用者。在這個過程中動態語言幹了一件吃力不討好的事情,轉了一個彎讀取資料然後在交給web
判斷String是否為數值,包括小數和負數
public static void main(String[] args) { Boolean strResult = "100".matches("-[0-9]+(.[0-9]+)?|[0-9]+(.[0-9]+)?"); if(strResult == t
PHP判斷SSL是否啟用,也就是判斷HTTPS
/* * 檢測連結是否是SSL連線 * @return bool */ function is_SSL(){ if(!isset($_SERVER['HTTPS'])) return FALSE; if($_SERVER['HTTPS'] === 1){ //Apach
後臺發送http請求通用方法,包括get和post
util line 通用方法 返回 finall 6.0 val except ktr package com.examsafety.service.sh; import java.io.BufferedReader; import java.io.IOExceptio
內存,寄存器和cache的區別與聯系
拷貝 技巧 line 一段時間 arc 但是 nbsp 貴的 硬盤 1. 寄存器是中央處理器內的組成部份。寄存器是有限存貯容量的高速存貯部件,它們可用來暫存指令、數據和位址。在中央處理器的控制部件中,包含的寄存器有指令寄存器(IR)和程序計數器(PC)。在中央處理器的算術及
iOS 使用QLPreviewController預覽本地和網路檔案
最近在專案中要做一個文件預覽的功能,做的時候用到了iOS原生的QLPreviewController類,在此做個記錄分享 首先引入標頭檔案 #import <QuickLook/QuickLook.h> 遵循代理 QLPreviewControllerDa
編寫一個檔案分割工具,能把一個大檔案分割成多個小的檔案。並且能再次把它們合併起來得到完整的檔案。
package wenjianyuliu;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io
編寫一個檔案分割工具,能把一個大檔案分割成多個小的檔案。並且能再次把他們合併起來得到完整的檔案
package wenjian; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java
MongoDB匯入資料資料夾(包括bson和json檔案)報錯
MongoDB匯入資料報錯 很多部落格都說在linux下 使用 mongorestore -d db_name 資料夾目錄 就可以匯入資料夾中的內容 記錄一個傻瓜錯誤: mongorestore是一個獨立可執行程式 這個命令不能放在mongo shell裡執行 應該
vue實際專案開發中,公共js(全域性引入)檔案如何寫,如何引入到入口檔案main.js
公共js檔案,比如commen.js通過export default暴露出來export default { install(Vue,options){ Vue.prototype.方法名=function(){}}在入口檔案main.js引入import comm form './assets/js/c
C#開發的定時自動拷貝檔案到別處,並刪除過期備份檔案,支援網路上的芳鄰拷貝
開發工具VS2013 .net 框架 2.0 SQL server的備份檔案只可以備份在本機,只有一份,這個軟體可以定時把備份檔案拷貝到別的機器,作為另外的備份,還可以在成功備份後自動刪除過期的檔案,沒有成功備份,不刪除過期檔案,以免誤刪,除非手動刪除。 拷貝檔案過程中沒有進度條
Android 實現PDF檔案的檢視(本地和網路檔案)
PDF檔案大家應該不陌生,說的簡單點,其實我認為就是一個全圖片的Word,裡面的每個頁面都可以看做是一張帶文字的圖片,接下來我們看看在Android應用裡如何讀取和檢視PDF檔案內容。 1 在專案的gradle中增加如下程式碼: compile 'com.joanzapa
Android客戶端使用OkGo上傳檔案或者圖片,客戶端和服務端程式碼分享
(一)上傳單個檔案或者圖片: 客戶端程式碼: /** * 儲存資料到伺服器 */ private void saveToInternet() { //上傳單個檔案 String url = Constants.USER_NET_ICON; Fi
axios服務封裝,可用於任何支援axios的專案中,包括react和vue都可通用。get/post請求,以及併發請求。以及導航欄隨意切換測試/正式環境
任何專案,只要支援axios,那麼你只要把我現在封裝的服務整個資料夾考過去即可。這個原本是我封裝在vue裡的,但是有一天公司突然來一個緊急的H5微信分享活動的專案,我當時用react搭建(zepto+node搭建其實最好)也是為了挑戰一下自己,畢竟只有三天時間。所以當我把很多vue裡封裝的東西直
Bitcoin Unlimited釋出BCH新版客戶端1.5.0.0,包括CTOR和CDSV
006YQfwzly1fw8yey3p00j30oo0dwnd0.jpg 對於比特幣現金11月份的網路升級,BCH社群存在一定的分歧,爭論主要集中在Bitcoin ABC開發團隊提出的更改內容交易規範排序(CTOR)和引入新的OP-Code程式碼OP_CHECK