Heim  >  Artikel  >  Backend-Entwicklung  >  PHP-Entwicklungsdateizeiger, Dateisperre

PHP-Entwicklungsdateizeiger, Dateisperre

WBOY
WBOYOriginal
2016-08-08 09:26:311049Durchsuche

(1) rewind()-Funktion
Diese Funktion setzt den Zeiger des Dateihandles auf den Anfang des Dateistreams. Die Syntax lautet wie folgt:
bool rewind(Ressourcenhandle)

(2)fseek()-Funktion
Die Funktion fseek() implementiert die Positionierung des Dateizeigers. Die Syntax lautet wie folgt:
int fseek(resource handle,int offset[,int wherece])
Der Handle-Parameter ist die zu öffnende Datei
Offset ist die Zeigerposition oder der Offset relativ zu den Where-Parametern, der ein negativer Wert sein kann.
woher die folgenden drei Typen gehören:
a, SEEK_SET, die Position entspricht dem Offset-Byte.
b, SEEK_CUR, die Position entspricht der aktuellen Position plus Offset-Offset.
c, SEEK_END, die Position entspricht dem Ende der Datei plus dem Offset-Offset.
Wenn der Parameter wherece weggelassen wird, verwendet das System standardmäßig SEEK_SET.

(3) feof()-Funktion
Mit dieser Funktion wird ermittelt, ob sich der Dateizeiger am Ende der Datei befindet. Das Syntaxformat lautet wie folgt:
bool feof(resource hanlde)
Wenn der Dateizeiger das Ende der Datei erreicht, gibt er true zurück, andernfalls gibt er false zurück

(4) ftell()-Funktion
Die Funktion ftell() wird verwendet, um die Position des aktuellen Zeigers zurückzugeben. Das Syntaxformat ist wie folgt:
int ftell(resource handle)

Der Beispielcode lautet wie folgt:

<code><span><span><?php</span><span>$filename</span> =<span>"1.txt"</span>;
<span>if</span> (is_file(<span>$filename</span>)) {
    <span>echo</span><span>"文件总字节数:"</span>.filesize(<span>$filename</span>).<span>"<br>"</span>;
    <span>$handle</span> =fopen(<span>$filename</span>, <span>"rb"</span>);
    <span>echo</span><span>"指针的初始位置尾:"</span>.ftell(<span>$handle</span>).<span>"<br>"</span>;
    fseek(<span>$handle</span>, <span>25</span>);         <span>//移动指针位置</span><span>echo</span><span>"使用fseek()函数后指针的位置:"</span>.ftell(<span>$handle</span>).<span>"<br>"</span>;
    <span>echo</span><span>"输出当前指针后面的内容:"</span>.fgets(<span>$handle</span>).<span>"<br>"</span>;
    <span>if</span> (feof(<span>$handle</span>)) {
        <span>echo</span><span>"当前指针指向文件末尾"</span>.ftell(<span>$handle</span>).<span>"<br>"</span>;
    }
    <span>else</span>{
        <span>echo</span><span>"当前指针没有志向末尾:"</span>.ftell(<span>$handle</span>).<span>"<br>"</span>;
    }
    rewind(<span>$handle</span>);
    <span>echo</span><span>"使用rewind()函数后当前指针指向位置:"</span>.ftell(<span>$handle</span>).<span>"<br>"</span>;
    <span>echo</span><span>"输出25个字节后的内容:"</span>.fgets(<span>$handle</span>,<span>25</span>).<span>"<br>"</span>;
    fclose(<span>$handle</span>);

}<span>else</span>{
    <span>echo</span><span>"文件不存在"</span>;
}

<span>?></span></span></code>

Die laufenden Ergebnisse lauten wie folgt:

2, Datei sperren

Beim Schreiben in eine Datei muss die Datei zuerst gesperrt werden, um zu verhindern, dass andere Benutzer gleichzeitig die Datei ändern. In PHP wird die Dateisperre mithilfe der Funktion flock() implementiert. Die Syntax lautet wie folgt:
bool flock(int handle,int operation)
handle ist ein Zeiger auf eine geöffnete Datei und die Betriebsparameter lauten wie folgt:

Der Beispielcode zum Sperren, Schreiben, Entsperren und Schließen der Datei lautet wie folgt:

<code>
<?php

<span>$filename</span> =<span>"1.txt"</span>;
<span>$handle</span> =<span>fopen</span>(<span>$filename</span>, <span>"w"</span>);
flock(<span>$handle</span>, LOCK_EX);
<span>$str</span> =<span>"MMMMMMMMMMMMMMMMMMMMM"</span>;
<span>fwrite</span>(<span>$handle</span>, <span>$str</span>);
flock(<span>$handle</span>, LOCK_UN);
<span>fclose</span>(<span>$handle</span>);
readfile(<span>$filename</span>);


?>

</code>

Lauf Die Ergebnisse lauten wie folgt:

Das Obige hat Dateizeiger und Dateisperren in die PHP-Entwicklung eingeführt, einschließlich einiger Aspekte davon. Ich hoffe, dass es für Freunde hilfreich sein wird, 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