您的位置:首页 > 编程语言 > PHP开发

PHP检查文件存不存在,不存在自动创建,读取文件内容

2017-02-14 09:29 471 查看
[php]
view plain
copy

<?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]
view plain
copy

<?php  

[php]
view plain
copy

$filename = $path.'log/'.gmdate('Ym').'/'.gmdate('j').'.log';//文件地址  
$position = strrpos($filename,'/');  
$path = substr($filename,0,$position);  
if(!file_exists($path)){  
 mkdir($path,0777,true);//创建目录  
}  
$fp=@fopen($filename,"a+");  
$content = $log."-".date('Y-m-d H:i:s')."\r\n";  
@fputs($fp,$content);  
@fclose($fp);  

[php]
view plain
copy

?>  

[php]
view plain
copy

读取文件内容  

[php]
view plain
copy

<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);  
}  
?>   

 

附加说明:

[b]fopen() 中 mode 的可能值列表[/b]
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 以及以后的版本所支持,仅能用于本地文件
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: