Heim  >  Artikel  >  Backend-Entwicklung  >  61 Dateisystem

61 Dateisystem

WBOY
WBOYOriginal
2016-07-29 09:11:45885Durchsuche

Inhalt der Datei lesen :

<code>PHP具有丰富的文件操作函数,最简单的<strong>读取文件</strong>的函数为file_get_contents,可以将整个文件全部读
取到一个字符串中。

<span>$content</span> = file_get_contents(<span>'./test.txt'</span>);
file_get_contents也可以通过参数控制读取内容的开始点以及长度。

<span>$content</span> = file_get_contents(<span>'./test.txt'</span>, null, null, <span>100</span>, <span>500</span>);
PHP也提供类似于C语言操作文件的方法,使用<span>fopen</span>,fgets,<span>fread</span>等方法,fgets可以从文件指针中读
取一行,freads可以读取指定长度的字符串。

<span>$fp</span> = <span>fopen</span>(<span>'./text.txt'</span>, <span>'rb'</span>);
<span>while</span>(!<span>feof</span>(<span>$fp</span>)) {
    echo fgets(<span>$fp</span>); <span>//读取一行</span>
}
<span>fclose</span>(<span>$fp</span>);


<span>$fp</span> = <span>fopen</span>(<span>'./text.txt'</span>, <span>'rb'</span>);
<span>$contents</span> = <span>''</span>;
<span>while</span>(!<span>feof</span>(<span>$fp</span>)) {
    <span>$contents</span> .= <span>fread</span>(<span>$fp</span>, <span>4096</span>); <span>//一次读取4096个字符</span>
}
<span>fclose</span>(<span>$fp</span>);
使用<span>fopen</span>打开的文件,最好使用<span>fclose</span>关闭文件指针,以避免文件句柄被占用。</code>

Bestimmen Sie, ob die Datei vorhanden ist:

<code>一般情况下在对文件进行操作的时候需要先判断文件是否存在,PHP中常用来判断文件存在的函数有
两个is_file与file_exists.

<span>$filename</span> = <span>'./test.txt'</span>;
<span>if</span> (file_exists(<span>$filename</span>)) {
    <span>echo</span> file_get_contents(<span>$filename</span>);
}
如果只是判断文件存在,使用file_exists就行,file_exists不仅可以判断文件是否存在,同时也可以判
断目录是否存在,从函数名可以看出,
is_file是确切的判断给定的路径是否是一个文件。

<span>$filename</span> = <span>'./test.txt'</span>;
<span>if</span> (is_file(<span>$filename</span>)) {
    <span>echo</span> file_get_contents(<span>$filename</span>);
}
更加精确的可以使用is_readable与is_writeable在文件是否存在的基础上,判断文件是否可读与可写。

<span>$filename</span> = <span>'./test.txt'</span>;
<span>if</span> (is_writeable(<span>$filename</span>)) {
    file_put_contents(<span>$filename</span>, <span>'test'</span>);
}
<span>if</span> (is_readable(<span>$filename</span>)) {
    <span>echo</span> file_get_contents(<span>$filename</span>);
}</code>

Inhalt in die Datei schreiben :

<code>与<strong>读取文件</strong>对应,PHP写文件也具有两种方式,最简单的方式是采用file_put_contents。

<span>$filename</span> = <span>'./test.txt'</span>;
<span>$data</span> = <span>'test'</span>;
file_put_contents(<span>$filename</span>, <span>$data</span>);
上例中,<span>$data</span>参数可以是一个一维数组,当<span>$data</span>是数组的时候,会自动的将数组连接起来,
相当于<span>$data</span>=implode(<span>''</span>, <span>$data</span>);

同样的,PHP也支持类似C语言风格的操作方式,采用<span>fwrite</span>进行文件写入。

<span>$fp</span> = <span>fopen</span>(<span>'./test.txt'</span>, <span>'w'</span>);
<span>fwrite</span>(<span>$fp</span>, <span>'hello'</span>);
<span>fwrite</span>(<span>$fp</span>, <span>'world'</span>);
<span>fclose</span>(<span>$fp</span>);</code>

Dateiänderungszeit abrufen:

<code>文件有很多元属性,包括:文件的所有者、创建时间、修改时间、最后的访问时间等。

fileowner:获得文件的所有者
filectime:获取文件的创建时间
filemtime:获取文件的修改时间
fileatime:获取文件的访问时间
其中最常用的是文件的修改时间,通过文件的修改时间,可以判断文件的时效性,经常用在静态
文件或者缓存数据的更新。

<span>$mtime</span> = filemtime(<span>$filename</span>);
<span>echo</span><span>'修改时间:'</span>.date(<span>'Y-m-d H:i:s'</span>, filemtime(<span>$filename</span>));</code>

Dateigröße abrufen:

<code>通过filesize函数可以取得文件的大小,文件大小是以字节数表示的。

<span>$filename</span> = <span>'/data/webroot/usercode/code/resource/test.txt'</span>;
<span>$size</span> = filesize(<span>$filename</span>);
如果要转换文件大小的单位,可以自己定义函数来实现。

<span><span>function</span><span>getsize</span><span>(<span>$size</span>, <span>$format</span> = <span>'kb'</span>)</span> {</span><span>$p</span> = <span>0</span>;
    <span>if</span> (<span>$format</span> == <span>'kb'</span>) {
        <span>$p</span> = <span>1</span>;
    } <span>elseif</span> (<span>$format</span> == <span>'mb'</span>) {
        <span>$p</span> = <span>2</span>;
    } <span>elseif</span> (<span>$format</span> == <span>'gb'</span>) {
        <span>$p</span> = <span>3</span>;
    }
    <span>$size</span> /= pow(<span>1024</span>, <span>$p</span>);
    <span>return</span> number_format(<span>$size</span>, <span>3</span>);
}

<span>$filename</span> = <span>'/data/webroot/usercode/code/resource/test.txt'</span>;
<span>$size</span> = filesize(<span>$filename</span>);

<span>$size</span> = getsize(<span>$size</span>, <span>'kb'</span>); <span>//进行单位转换</span><span>echo</span><span>$size</span>.<span>'kb'</span>;
值得注意的是,没法通过简单的函数来取得目录的大小,目录的大小是该目录下所有子目录以及文件
大小的总和,因此需要通过递归的方法来循环计算目录的大小。</code>

Datei löschen:

<code>跟Unix系统命令类似,PHP使用<span>unlink</span>函数进行文件删除。

<span>unlink</span>(<span>$filename</span>);
删除文件夹使用<span>rmdir</span>函数,文件夹必须为空,如果不为空或者没有权限则会提示失败。

<span>rmdir</span>(<span>$dir</span>);
如果文件夹中存在文件,可以先循环删除目录中的所有文件,然后再删除该目录,循环删除可以
使用<span>glob</span>函数遍历所有文件。

<span>foreach</span> (<span>glob</span>(<span>"<span>*"</span>) as <span>$filename</span>) {
   unlink(<span>$filename</span>);
}</span></code>
').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i ').text(i)); }; $numbering.fadeIn(1700); }); });

Das Obige hat das 61-Dateisystem vorgestellt, einschließlich des Inhalts zum Lesen von Dateien. Ich hoffe, es wird für Freunde hilfreich sein, die sich für PHP-Tutorials interessieren.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn