1. 程式人生 > >PHP檢查檔案存不存在,不存在自動建立,讀取檔案內容

PHP檢查檔案存不存在,不存在自動建立,讀取檔案內容

<?php 

$filename = 'a/b.html';
$writetext = 'ssssssssssss';

$result = jwritefile($filename, $writetext);
var_dump($result);die;

function jwritefile($filename, $writetext) {
	$position = strrpos($filename,'/');
	$path = substr($filename,0,$position);
	if(!file_exists($path)){
		mkdir($path,0777,true);
	}
	$updatetime = filemtime($filename);
	$difftime = time()-$updatetime;
	if($difftime > 3600){//時間大於一個小時
		if (@file_put_contents($filename, $writetext, LOCK_EX)) {
            return 1;
        }else {
            return -1;
        }
	}else{
		return 0;//時間小於1一個鐘頭,不用生成
	}
}

?>
<?php
$filename = $path.'log/'.gmdate('Ym').'/'.gmdate('j').'.log';//檔案地址
$position = strrpos($filename,'/');
$path = substr($filename,0,$position);
if(!file_exists($path)){
 mkdir($path,0777,true);//建立目錄
}
[email protected]($filename,"a+");
$content = $log."-".date('Y-m-d H:i:s')."\r\n";
@fputs($fp,$content);
@fclose($fp);
?>
讀取檔案內容
<pre class="php" name="code"><?php
$handle = @fopen("/tmp/inputfile.txt", "r");
if ($handle) {
    while (!feof($handle)) {
        $buffer = fgets($handle, 4096);
        echo $buffer;
    }
    fclose($handle);
}
?> 

附加說明:

fopen()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 以及以後的版本所支援,僅能用於本地檔案。

相關推薦

PHP檢查檔案存在存在自動建立讀取檔案內容

<?php $filename = 'a/b.html'; $writetext = 'ssssssssssss'; $result = jwritefile($filename, $wr

Java 自動判斷配置檔案是否已經存在如果存在自動建立如果存在直接讀寫

try {     pro.load(new BufferedInputStream(new FileInputStream("config.ini"))); } catch (FileNotFoundException e) {     pro.put("GuestDefaultFloor", "10");

橫豎屏切換時禁止activity重新建立android:configChanges="keyboardHidden|orientation" 起作用

這個網上搜索,很多結果都是: AndroidManifest.xml android:configChanges="keyboardHidden|orientation" 但是,實際上很多手機上,這

swoole5-使用swoole管理程序毫秒計時器和非同步讀取檔案

swoole管理程序 小案例:修改某個程序的名字? 未改之前 案例程式碼 <?php //修改程序名稱 swoole_process::name('php_process_newname'); sleep(1000); 修改後 小案例:建立一個子程

前端本地客戶端壓縮圖片相容IOSAndroidPC、自動按需載入檔案

演示一下 自己試試 說明 在客戶端壓縮好要上傳的圖片可以節省頻寬更快的傳送給後端,特別適合在移動裝置上使用。 為什麼需要 已踩過很多坑,經過幾個版本迭代,以及很多很多網友的反饋幫助、機型測試 圖片扭曲、某些裝置不自動旋轉圖片方向,沒有jpeg壓縮演算法

php pdo類 防注入事務多庫自動選擇鏈式操作

因為某些原因目前業務不用框架開發,自己寫了一個pdo類實現防注入,事務等,後續還會繼續完善  <?php /*

使用Setup Factory 打包軟體安裝時自動建立資料庫及資料庫中的表(效果類似sql server中的附加資料庫操作)

前提:已安裝Setup Fatory軟體、我使用的是 安裝工廠永樂漢化版,需要的請自行下載安裝 下面只列出關鍵性步驟,黃色字型較為關鍵,是一個出錯點   步驟一(關鍵):生成資料庫備份檔案,以及建表sql指令碼,和bat命令檔案 備份資料庫,生成檔案1,.bak檔

ACM:最短路dijkstra鄰接表的建立使用鄰接表跟優先佇列的dijkstraBellman-FordFloyd。。

(一)dijkstra,鄰接矩陣 所有邊權均為正,不管有沒有環,求單個源點出發,到所有節點的最短路。該方法同時適用於有向圖和無向圖。 #include <iostream> #include <string> #include <stack&g

做題------FileOutputStream自動建立或覆蓋檔案

答案選:C因為FileOutputStream建構函式本身的邏輯,當使用FileOutputStream時,若檔案存在,則被新的覆蓋,若不存在,則構建;若不想被覆蓋,則:FileOutputStream(File file,false);檔案是以獨佔的方式開啟,借用網友的比喻

如何讓新版的javaEE自動建立web.xml檔案

現在的新版javaee工具不會預設生成web.xml檔案,但我們在建立網路工程時可以設定自動建立該檔案。 首先建立專案: 設定專案名,點選next 點選next 把紅框中的選項打上勾,這樣就會自動建立web.xml檔案了。 目錄結構如下 檔案內容如下: <?x

expect 極簡示例用指令碼自動填寫要輸入的內容

極簡示例、清爽易懂易修改【以下是 my.sh 內容,讀取使用者輸入並回顯的普通 shell 指令碼】#!/bin/shread -p "Input 1: " inputecho "My Input 1 is: $input"read -p "Input 2: " inpute

Maven + myeclise整合及web專案建立和匯入現成的web專案

1. 使用Maven建立webapp工程----原因是使用Maven時一般需要遵循一定的目錄結構,雖然也可以使用不同的目錄結構,但目前還不熟悉如何修改pom.xml檔案達到目的,而且修改太多預設配置對maven來說也不好。 建立方法,在一個目錄下使用命令:mvn arc

Maven 問題一啟動Eclipse之後Maven更新自動開始解決。updating maven dependencies

問題描述:因為架包的修改,所以Maven需要更新,一啟動Eclipse之後,自動更新,由於Maven的架包很多download不下來,就一直卡著的樣子,很長時間,什麼都做不了。 解決辦法:Eclipse的Window---->Preferences---->Ma

redis學習之shell自動建立節點配置檔案

這兩天工作有空閒,所以看了一下redis文件,決定按照文件搭建一套測試環境,做一下叢集的測試。在開始配置叢集時,官方推薦採用6個節點,但是測試樣例中需要手動建立每個節點的目錄和配置檔案。正好最近想學習一下指令碼,所以寫了一個指令碼進行自動建立節點,用來學習shell指令碼編寫

python 檔案輸出與重定向 輸出的內容會在記憶體中暫會立刻輸出到檔案

1、使用write寫磁碟檔案 python 中使用write,將資料寫入到檔案中,但是並不是write之後,就立刻寫入到檔案(比如a.txt)中,python的write會先將資料放在記憶體的緩衝區中,等到積累了一定的量,再一起寫入到磁碟檔案中。這樣可以提高效能,減少訪問磁

優化安卓應用內的神奇方法以及背後的原理一般人我告訴他

hvr 通知 lib easy rgb ger eset canvas 統計 安卓應用一般都害怕自己被殺。內存占用高是被殺的重要原因之中的一個。所以大家都想盡各種招數應對,但效果都一般。 但有一招: WindowManagerGlobal.getInstance(

tomcat啟動溢出

技術分享 信息 今天 控制臺 下午 溢出 什麽 net 方法 今天下午不知道做了什麽,然後tomcat啟動了10分鐘還啟動不了。然後看控制臺報錯信息,說是內存溢出。然後就各種百度,終於解決了。在這裏記錄提示自己,避免這種問題再次出現還要浪費時間去找方法解決。 最後附上紅色

【POI】導出excel文件生成中間文件直接將內中的數據創建對象下載到瀏覽器

src sheet xssf xls close creat 下載 position new 不是從InputStream中read,然後outputStream再write @RequestMapping("download4Excel") public v

flask如何使模板返回大文件消耗大量內

syntax rip mini generator 當我 n-k range body -m 當我們要往客戶端發送大量的數據,比如一個大文件時,將它保存在內存中再一次性發到客戶端開銷很大。比較好的方式是使用流,本篇就要介紹怎麽在Flask中通過流的方式來將響應內容發送給客戶

26、【華為HCIE-Storage】--Hyper Clone(支持外部同一控制器)

HCIE Storage hostman ------------------------------------重要說明------------------------------------以下部分內容來網絡,部分自華為存儲官方教材具體教材內容請移步華為存儲官網進行教材下載 網絡引用內容