Tutoriel de développement PHP de base?: opérations sur les fichiers PHP
1. Système de fichiers
1. Nous ferons un clic droit sur la souris pour supprimer le fichier, contr?le+c (ou clic droit) pour copier. et collez le fichier, puis créez un nouveau fichier. Pour certains fichiers, vérifiez si le fichier est en lecture seule.
2. Ce serait formidable si ces opérations effectuées sur l'ordinateur pouvaient être effectuées dans le code.
3. Parce que, s'il y a ces opérations. On peut faire beaucoup de choses :
Puis-je écrire et modifier le fichier de configuration ?
Est-il possible de détecter les autorisations de fichiers lors de l'installation de PHP??
Est-il possible de générer des fichiers HTML et de nombreuses autres opérations
..... Les opérations sur les fichiers sont utilisées dans trop d'autres endroits.
4. L'apprentissage du traitement de fichiers consiste essentiellement à apprendre les fonctions de traitement de fichiers. Combinez-le avec le code que vous avez écrit auparavant pour améliorer vos capacités de traitement métier.
2. Lire le fichier
1.readfile lit le fichier
Alors comment lire un fichier ? Apprenons d'abord une fonction.
int readfile (string $filename)
Fonction?: transmettre un chemin de fichier et générer un fichier.
Dans le code ci-dessous, le fichier est lu tant que le nom du fichier ou le chemin du fichier spécifié est transmis.
<?php //linux類的讀了方式 readfile("/home/paul/test.txt"); //windows類的讀取方式 readfile("c:\boot.ini"); ?>
Remarque?: la barre oblique Windows dans le code ci-dessus est une barre oblique et certains caractères peuvent être échappés. Par conséquent, lorsque nous écrivons, nous écrivons deux barres obliques.
2.file_get_contents ouvre le fichier
Ce qui précède est une sortie directe après simplement l'ouverture du fichier. Y a-t-il une opération qui peut être affectée à une variable. après avoir ouvert le fichier ?
PHP fournit certainement cette méthode. Cette méthode est l'un des moyens par lesquels PHP ouvre un fichier et renvoie le contenu. Jetons un coup d'?il à la fonction?:
string file_get_contents (string filename)
?. >Fonction : Passer Entrez un fichier ou un chemin de fichier, ouvrez le fichier et renvoyez le contenu du fichier. Le contenu du fichier est une cha?ne.
<?php $filename = 'NoAlike.txt'; $filestring = file_get_contents($filename); echo $filestring; ?>Le code ci-dessus ouvre un fichier et affiche le contenu du fichier. Développons le code en fonction des connaissances précédentes. Utilisez vos connaissances antérieures.
<?php //假設(shè)我們有一個(gè)多行的文件叫NoAlike.txt,沒有的話你可以新建一個(gè)這個(gè)文件 $filename = 'NoAlike.txt'; //打開這個(gè)文件,將文件內(nèi)容賦值給$filestring $filestring = file_get_contents($filename); //因?yàn)槊恳恍杏幸粋€(gè)回車即\n,我用\n來把這個(gè)字符串切割成數(shù)組 $filearray = explode("\n", $filestring); //把切割成的數(shù)組,下標(biāo)賦值給$key,值賦值給$val,每次循環(huán)將$key加1。 while (list($key, $val) = each($filearray)) { ++$key; $val = trim($val); //用的單引號(hào),單引號(hào)不解釋變量進(jìn)行了拼接而已 print 'Line' . $key .':'. $val.'<br />'; } ?>Ci-dessus, nous avons combiné les connaissances que nous avons apprises auparavant.
3. Les opérations fopen, fread et fclose lisent les fichiers
La méthode file_get_contents ci-dessus pour ouvrir des fichiers est simple et grossière. La ressource suivante- fopen (cha?ne $nom de fichier, mode cha?ne)
- cha?ne fread (ressource $opération ressource, longueur de lecture int)
- bool fclose ( ressource $ opération ressource)
- Ouvrir les ressources
- Utiliser les fonctions associées pour fonctionner
- Fermer les ressources
Fonction fopen La fonction fopen est d'ouvrir un fichier. Il y a deux paramètres principaux :
l Chemin pour ouvrir le fichier
l Ouvrir Le type de retour du mode
du fichier est un type de ressource C'est la première fois que nous rencontrons le type de ressource mentionné dans le type de base précédent.
Le type de ressource nécessite d'autres fonctions pour faire fonctionner cette ressource. Toutes les ressources doivent être fermées lors de leur ouverture.
Fonction fread La fonction de la fonction est de lire la ressource du fichier ouvert. Lisez la ressource fichier de la longueur spécifiée, lisez-en une partie et déplacez-la vers l'arrière. jusqu'à la fin du fichier.
Fonction fclose La fonction fclose est de fermer les ressources. Les ressources sont ouvertes et fermées.
Après avoir compris les fonctions, les deux dernières fonctions sont relativement simples. Quels sont les modes de la fonction fopen ? Les modes de fopen sont les suivants Parlons des modes de fopen?:
<. ??>
3. Il faut d'abord savoir lire des fichiers avant de bien ma?triser l'écriture de fichiers.
1. Ouvrez le fichier
<?php //你可以創(chuàng)建一個(gè)NoAlike.txt,以只讀模式打開 $fp = fopen('NoAlike.txt', "r"); //var_dump()操作一下$fp看看效果,輸出的是不是只有類型提示的是resource var_dump($fp); ?>
2. Lisez le fichier
<?php $fp = fopen('NoAlike.txt', "r"); //打開一個(gè)文件類型后,讀取長(zhǎng)度 $contents = fread($fp, 1024); ?>?. > 3. Fermez le fichier
<?php
$fp = fopen($filename, 'r');
$contents = fread($fp, 1024);
fclose($fp);
echo $contents;
?>
Autres notes :
Exemple d'utilisation :
<?php $fp = fopen($filename, 'ab'); $contents = fwrite($fp, '可愛的很\n喲'); fclose($fp); echo $contents; ?>
Explication?:
L'expérience ne peut pas permettre à l'?il nu de voir l'effet de cette expérience. N'oubliez pas cette fonctionnalité.
Windows fournit une balise de conversion de texte (? t ?) pour convertir de manière transparente n en rn.
4. Créer et modifier le contenu du fichier
1.file_put_contents est écrit dans le fichierApprenons d'abord la première fa?on d'écrire des fichiers?:
int file_put_contents (string $file path, string $write data])Fonction : écrivez une cha?ne dans le fichier spécifié et créez le fichier s'il n'existe pas. Ce qui est renvoyé est la longueur des octets écrits
<?php
$data = "我是一個(gè)兵,來自老百姓";
$numbytes = file_put_contents('binggege.txt', $data);
if($numbytes){
echo '寫入成功,我們讀取看看結(jié)果試試:';
echo file_get_contents('binggege.txt');
}else{
echo '寫入失敗或者沒有權(quán)限,注意檢查';
}
?>
Nous avons constaté que l'écriture de fichiers est assez simple. Selon le format de cette fonction, spécifiez le fichier et écrivez les données de cha?ne.
int fwrite ( ressource $ fichier variable de ressource, cha?ne $ cha?ne écrite [, int longueur ])
Remarque?: la fonction d'alias de fwrite est fputs
Nous avons essayé le mode r dans le dernier cours, qui n'était utilisé que lors de la lecture. Ensuite, nous utilisons fwrite plus w dans fopen pour écrire des fichiers en mode écriture.
Jetons un coup d'?il aux fonctionnalités?:
Ouvrez en mode écriture, pointez le pointeur du fichier sur l'en-tête du fichier et tronquez la taille du fichier à zéro. Si le fichier n'existe pas, tente de le créer.
Remarque?: dans l'expérience suivante, vous pouvez essayer de créer un nouveau fichier test.txt et d'y écrire du contenu. Ensuite, vous pouvez essayer de supprimer test.txt. Voyez quels sont les conseils disponibles.
<?php $filename = 'test.txt'; $fp= fopen($filename, "w"); $len = fwrite($fp, '我是一只來自南方的狼,一直在尋找心中的花姑娘'); fclose($fp); print $len .'字節(jié)被寫入了\n"; ?>
Résumé?:
1. Qu'il y ait un nouveau fichier ou non, le fichier sera ouvert et réécrit
2. Le contenu du fichier d'origine sera écrasé?. >3. Fichier S'il n'existe pas, il sera créé
<?php $filename = 'test.txt'; $fp= fopen($filename, "r+"); $len = fwrite($fp, '我是一只來自南方的狼,一直在尋找心中的花姑娘'); fclose($fp); print $len .'字節(jié)被寫入了\n'; ?>Vous pouvez supprimer le signe + après r lors de l'expérimentation. Grace à des expériences, nous avons constaté qu'en utilisant le mode r, les données peuvent être écrites lorsque le fichier est enregistré. Si seul r est utilisé, l'écriture échoue.
3. La différence entre un mode et le mode w
Le même code est ci-dessous, on le change en mode.<?php $filename = 'test.txt'; $fp= fopen($filename, "a"); $len = fwrite($fp,'讀大學(xué)迷茫了,PHP學(xué)院PHP給你希望'); echo $len .'字節(jié)被寫入了\n'; ?>Ouvrez la page Web et exécutez ce code, vous trouverez?: chaque fois que vous actualisez, il y aura un paragraphe supplémentaire dans le fichier
Si vous êtes confus à l'université, PHP Academy PHP vous donne de l'espoir.
La différence entre le mode 4.x et le mode w
Expérimentons avec ce code encore une fois, passez au >Si vous remplacez $filename par un autre nom de fichier, tout ira bien. Cependant, lorsque je l'ai actualisé à nouveau, une erreur a été signaléex+ est un mode x amélioré. Peut également être utilisé lors de la lecture.
5. Créer des fichiers temporaires
Les fichiers que nous avons créés auparavant sont des fichiers permanents.
La création de fichiers temporaires est également très utile dans le développement quotidien de nos projets. Plusieurs avantages de la création de fichiers temporaires?:
2. Il n'est pas nécessaire de maintenir l'état de suppression de ce fichier
. ??> Par exemple?: je dois transférer le contenu du fichier de A vers B et transférer le contenu du fichier de B vers C.Tout comme dans la vraie vie, je peux d'abord utiliser une bouteille temporaire pour remplir l'eau de B, puis écrire les données de A dans B. Ajoutez l'eau de la bouteille temporaire à C.
Apprenons cette fonction?:resource tmpfile ( )
Fonction?: Crée un fichier temporaire et renvoie le type de ressource. Le fichier est supprimé lorsqu'il est fermé.
<?php $filename = 'test.txt'; $fp= fopen($filename, "x"); $len = fwrite($fp,'讀大學(xué)迷茫了,PHP學(xué)院PHP給你希望'); echo $len .'字節(jié)被寫入了\n'; ?>
6. Déplacer, copier et supprimer des fichiers
1. Renommer
bool renommer ( $ancien nom, $nouveau nom);
Cette fonction renvoie une valeur booléenne pour remplacer l'ancien nom par le nouveau nom.
<?php //創(chuàng)建了一個(gè)臨時(shí)文件 $handle = tmpfile(); //向里面寫入了數(shù)據(jù) $numbytes = fwrite($handle, '寫入臨時(shí)文件'); //關(guān)閉臨時(shí)文件,文件即被刪除 fclose($handle); echo '向臨時(shí)文件中寫入了'.$numbytes . '個(gè)字節(jié)'; ?>
Nous ouvrons le répertoire et nous pouvons voir l'effet Vous constaterez que le fichier spécifié est copié dans le chemin cible.
2. Copier des fichiers
La copie de fichiers équivaut à la technologie de clonage, cloner une chose originale dans une nouvelle chose. Les deux se ressemblent exactement.
bool copy (fichier source, fichier cible)
Fonction?: Copiez le fichier source avec le chemin spécifié vers l'emplacement du fichier cible.
Jouons avec à travers des expériences et du code?:
<?php //舊文件名 $filename = 'test.txt'; //新文件名 $filename2 = $filename . '.old'; //復(fù)制文件 rename($filename, $filename2); ?>
Résumé?:
Vous constaterez qu'il y a un fichier supplémentaire grace à l'exemple ci-dessus.
3. Supprimer des fichiers
Supprimer un fichier signifie supprimer un fichier dans le chemin spécifié, mais cette suppression est une suppression directe. Si vous utilisez un ordinateur Windows, vous ne pouvez pas voir ce fichier dans la corbeille.
Vous constaterez seulement que ce fichier a disparu.
bool dissocier (fichier avec chemin spécifié)
<?php //舊文件名 $filename = 'copy.txt'; //新文件名 $filename2 = $filename . '_new'; //修改名字。 copy($filename, $filename2); ?>
Détecter la fonction d'attribut de fichier
Certains étudiants sont particulièrement curieux de savoir où la détection des attributs de fichier est utilisée. La détection des attributs de fichier peut être utilisée à trop d'endroits.
Donnons un exemple?:
1. Lorsque nous installons le logiciel, vous constaterez que si le fichier existe, il passera à un autre endroit.
2. Si certains fichiers n'ont pas d'autorisation en écriture pendant le processus d'installation, l'installation ne sera pas autorisée.
Prenons une capture d'écran du processus d'installation de discuz, un logiciel très célèbre en Chine?:
L'exemple ci-dessus est une utilisation typique de la détection de fichiers.
Apprenons le lot de fonctions suivant. Ensuite, apprenons à travers un exemple.
bool file_exists ($spécifiez le nom du fichier ou le chemin du fichier)
Fonction : si le fichier existe.
bool is_readable ($spécifiez le nom du fichier ou le chemin du fichier)
Fonction?: indique si le fichier est lisible
bool is_writeable ($specify nom du fichier ou chemin du fichier)
Fonction?: si le fichier est accessible en écriture
bool is_executable ($spécifie le nom du fichier ou le chemin du fichier)
Fonction?: si le fichier est exécutable
bool is_file ($spécifie le nom du fichier ou le chemin du fichier)
Fonction?: s'il s'agit d'un fichier
bool is_dir ($ précise le nom du fichier ou le chemin du fichier)
Fonction : Qu'il s'agisse d'un répertoire
void clearstatcache (void)
Fonction : Effacer le cache d'état du fichier
La fonction ci-dessus peut être vue d'un coup d'?il. Compris. Quant à l’expérience, écrivons l’exemple que nous avons donné au début.
Parlons du premier exemple, le verrouillage de fichiers. S'il a été installé, si le verrou d'installation existe, il vous indiquera qu'il a été installé, sinon l'installation se poursuivra.
Nous supposons que l'URL de l'interface d'installation est?: install.php et que le fichier de verrouillage installé est install.lock. Nous pouvons détecter si le fichier install.lock existe.
<?php $filename = 'test.txt'; if (unlink($filename)) { echo "刪除文件成功 $filename!\n"; } else { echo "刪除 $filename 失敗!\n"; } ?>
Faisons une expérience de détection d'installation de fichier pour détecter si le fichier ou le répertoire dispose d'autorisations d'écriture ou de lecture. Dans le cas contraire, l'installation ne pourra pas être effectuée.
L'idée de??traiter ce problème est la suivante?:
1. Définir un lot de tableaux qui doivent détecter les autorisations
2. est un dossier ou un fichier
3. Créez une variable de bit définie si la variable de bit définie est fausse, la prochaine étape de l'installation ne sera pas affichée
<?php if(file_exists('install.lock')){ echo '已安裝,請(qǐng)不要再次進(jìn)行安裝'; exit; } ?>
Grace à l'exemple ci-dessus, nous l'ai fait. Implémentez la détection d'installation pendant le processus d'installation d'un certain logiciel PHP.
C'est la réalisation de notre idée ci-dessus.
8. Fonctions et constantes communes pour les fichiers
1. La constante suivante est la plus couramment utilisée. Est une constante qui est le délimiteur du répertoire de fichiers.
Jetons un coup d'?il au format?:
Le format du chemin de Windows est d:xxxxxx Remarque?: Windows prend en charge d:/xxx/xxx
, lorsque vous activez l'échappement et autres, d:xxxxxx est le même si les caractères d'échappement sont utilisés ensemble. Lors du jugement, il y en a deux. S'il y en a, convertissez-les en un seul, puis remplacez / pour diviser le chemin, afin que les chemins sous Linux ou Windows puissent rester unifiés.
Nous utiliserons une constante?:
écrivons un petit exemple pour définir le chemin du fichier actuel?:
Puisque FILE est un préréglage de constantes PHP sont définis, il n'y a donc aucun moyen de les modifier. Si nécessaire, FILE peut également s'adapter au système d'exploitation.
Ensuite, n'utilisez pas FILE, vous pouvez utiliser des constantes personnalisées et traiter FILE, comme suit?:<?php //可以定義一批文件是否存在 $files = [ 'config.php', 'img/', 'uploads/', ]; //定義標(biāo)志位變量 $flag = true; foreach($files as $v){ echo $v; //判斷是文件還是文件夾 if(is_file($v)){ echo '是一個(gè)文件 '; }else if(is_dir($v)){ echo '是一個(gè)文件夾 '; } if(is_readable($v)){ echo ' 可讀'; }else{ echo '<font color="red">不可讀</font>'; } if(is_writeable($v)){ echo '可寫'; }else{ echo '<font color="red">不可寫</font>'; } echo '<br />'; } if($flag){ echo '<a href="step1">下一步</a>'; }else{ echo '不能進(jìn)行安裝'; } ?>
2. Fonction d'opération du pointeur de fichier
rewind (ressource handle)
Fonction?: renvoie le pointeur au début
fseek (ressource handle, int offset [, int from_where] )
Fonction?: Déplacez le pointeur de fichier vers l'arrière du caractère spécifié
Dans la lecture précédente, nous avons constaté que fread lit les données de la longueur spécifiée. Lisez le contenu de la longueur spécifiée la prochaine fois que vous le lisez, commencez à partir de la position d'origine, puis lisez à rebours.
Comme le montre l'image ci-dessus, on peut imaginer?:
1. Lors de la première ouverture du fichier, l'ic?ne rouge est lue
<. ??>2 .Le fichier fausse couleur est lu de A à C3 Nous écrivons un lot de fichiers dans le fichier demo.txt : Abcdeefghijklk?. >Opqrst
Uvwxyz
12345678
Nous pouvons commencer une expérience.
<?php $_current_file = str_replace(array('/', '\'), DIRECTORY_SEPARATOR, __FILE__); define('__CUR_FILE__', $_current_file); echo __CUR_FILE__; ?>
Dans l'exemple ci-dessus, vous constaterez que fseek déplace autant d'octets que la longueur spécifiée. Et le rembobinage revient à chaque fois au début du fichier.
Comment aller au bout ? Nous pouvons compter le nombre d'octets. Déplacez-vous directement vers l’arrière pendant la recherche.
Parlons des octets de statistiques sur la taille des fichiers.
3.filesize détecte la taille du fichier
<?php $fp = fopen('output.txt', 'r+'); //讀取10個(gè)字符 echo fread($fp,10); //指針設(shè)置回到開始處 rewind($handle); //再讀取10次看看輸出的是什么 echo fread($fp,10); //文件指針向后移動(dòng)10個(gè)字符 echo fseek($fp,10); //再看看文件中輸出的是什么 echo fread($fp,10); fclose($handle); ?>
4 Autres fonctions pour exploiter les fichiers
En fait, il existe d'autres fonctions pour. d'exploitation des fichiers, lisez Obtenir le fichier
Nous utilisons un exemple pour utiliser toutes les fonctions ci-dessus.
Nous écrivons un lot de fichiers dans le fichier demo.txt :
abcdeefghijklk
opqrst
uvwxyz
12345678
<?php $filename = 'demo.txt'; echo $filename . '文件大小為: ' . filesize($filename) . ' bytes'; ?>
fgets ouvre une ligne à la fois?:
<?php //以增加的r模式打開 $fp = fopen('demo.txt','r+'); //你分發(fā)現(xiàn)每次只讀一個(gè)字符 echo fgetc($fp); //我要全部讀取可以,讀取一次將結(jié)果賦值一次給$string while($string = fgetc($fp)){ echo $string; } ?>
Avec le code ci-dessus, vous constaterez que chaque lecture ouvre une ligne à la fois. Le retour final de lecture est faux.
Regardons ensuite la fonction d'interception de fichiers?:
<?php //以增加的r模式打開 $fp = fopen('demo.txt','r+'); //你分發(fā)現(xiàn)每次只讀一個(gè)字符 echo fgets($fp); echo fgets($fp); echo fgets($fp); echo fgets($fp); ?>
Dans l'exemple ci-dessus, nous avons constaté que le contenu peut être affiché tant qu'il est intercepté.
5. Fonction heure du fichier
<?php //打開我們上面的demo.txt文件 $file = fopen("demo.txt", "a+"); //你可以數(shù)數(shù)20個(gè)字有多長(zhǎng),看看是不是達(dá)到效果了 echo ftruncate($file,20); fclose($file); ?>
9. Mécanisme de verrouillage des fichiers
Le mécanisme de verrouillage des fichiers n'a généralement aucun effet lorsqu'un seul fichier est ouvert. Cette partie de l'apprentissage est un peu abstraite.
Vous ne réfléchissez pas à la manière d'y parvenir??
Pourquoi ne voyez-vous pas l’effet??
Réponse?: Parce que l'ordinateur fonctionne si vite, essentiellement au niveau de la milliseconde. Cette expérience n’a donc aucun effet.
Dans ce chapitre, comprenez simplement les concepts de base du verrouillage de fichiers et familiarisez-vous avec la fonction de verrouillage de fichiers et le mécanisme de verrouillage.
Utilisation du verrouillage de fichier?:
Si une personne écrit un fichier, une autre personne ouvre également le fichier et écrit le fichier.
Dans ce cas, s'il y a une certaine probabilité de collision, je ne sais pas quelle opération prévaudra.
Par conséquent, nous introduisons actuellement le mécanisme de verrouillage.
Si l'utilisateur A écrit ou lit ce fichier, ajoutez le fichier au partage. Je peux le lire, et les autres aussi.
Cependant, si tel est le cas. J'utilise le verrouillage exclusif. Ce fichier m'appartient, n'y touchez pas à moins que je libère le verrou du fichier.
Remarque?: qu'un verrou de fichier soit ajouté ou non, veillez à le libérer.
Jetons un coup d'oeil à cette fonction?:
bool flock ( resource $handle , int $operation)
Fonction : Verrouillage léger des fichiers de consultation
Jetons un coup d'?il au type de verrou?:
Ajoutons un verrou exclusif à demo.txt et procédons à l'écriture opération.
<?php $filename = 'demo.txt'; if (file_exists($filename)) { echo "$filename文件的上次訪問時(shí)間是: " . date("Y-m-d H:i:s", fileatime($filename)); echo "$filename文件的創(chuàng)建時(shí)間是: " . date("Y-m-d H:i:s", filectime($filename)); echo "$filename文件的修改時(shí)間是: " . date("Y-m-d H:i:s", filemtime($filename)); } ?>
Description :
Dans l'exemple ci-dessus, afin d'écrire dans le fichier, j'ai ajouté un verrou exclusif au fichier.
Si mon opération est terminée, une fois l'écriture terminée, le verrou exclusif est libéré.
Si vous lisez un fichier, vous pouvez ajouter un verrou partagé selon la même idée de traitement.
10. Fonction de traitement des répertoires
Avant de traiter tous les fichiers, alors comment gérer les répertoires et les dossiers ?
Apprenons les fonctions liées au traitement des répertoires ou des dossiers.
L'idée de base du traitement des dossiers est la suivante?:
Lors de la lecture d'un certain chemin, déterminez s'il s'agit d'un dossier
S'il s'agit d'un dossier, ouvrez le dossier spécifié et renvoie le fichier Variables de ressources du répertoire
Utilisez readdir pour lire les fichiers dans le répertoire une fois, et le pointeur du répertoire est décalé une fois vers l'arrière
Utilisez readdir pour lire jusqu'à la fin, s'il n'y a pas de fichier lisible, retournez false
Fermez le répertoire des fichiers
Apprenons une liste des fonctions couramment utilisées?:
<?php $fp = fopen("demo.txt", "r+"); // 進(jìn)行排它型鎖定 if (flock($fp, LOCK_EX)) { fwrite($fp, "文件這個(gè)時(shí)候被我獨(dú)占了喲\n"); // 釋放鎖定 flock($fp, LOCK_UN); } else { echo "鎖失敗,可能有人在操作,這個(gè)時(shí)候不能將文件上鎖"; } fclose($fp); ?>
Puisqu'il est lu une fois et reculer une fois, pouvons-nous
<?php //設(shè)置打開的目錄是D盤 $dir = "d:/"; //判斷是否是文件夾,是文件夾 if (is_dir($dir)) { if ($dh = opendir($dir)) { //讀取一次向后移動(dòng)一次文件夾指針 echo readdir($dh).'<br />'; echo readdir($dh).'<br />'; echo readdir($dh).'<br />'; echo readdir($dh).'<br />'; //讀取到最后返回false //關(guān)閉文件夾資源 closedir($dh); } } ?>
Paramètres d'autorisation de fichier?. >
Paramètres d'autorisation de fichier Les fonctions sont couramment utilisées dans les logiciels de niveau de gestion système. Par exemple?: un certain fichier ne peut pas être visualisé par le groupe invité (utilisateurs invités). Dans la gestion d'entreprise, certains utilisateurs ou certains fichiers utilisateur peuvent uniquement être lus et non modifiés. Ce sont des fonctions très couramment utilisées. Remarque?: Ce chapitre est un chapitre de compréhension. Si vous n'avez jamais appris Linux auparavant et que cela sera un peu difficile, vous pouvez sauter ce chapitre et en apprendre davantage. est moins utile dans les processus de production réels. Principalement destiné aux étudiants qui disposent d'un système de connaissances complet sous Linux et peuvent se concentrer sur l'apprentissage. Certaines fonctions sous Windows ne peuvent pas être implémentées.C'est relativement facile pour les étudiants qui ont appris Linux. Ceux qui ne l’ont pas appris trouveront cela un peu difficile.
<?php //設(shè)置打開的目錄是D盤 $dir = "d:/"; //判斷是否是文件夾,是文件夾 if (is_dir($dir)) { if ($dh = opendir($dir)) { //讀取到最后返回false,停止循環(huán) while (($file = readdir($dh)) !== false) { echo "文件名為: $file : 文件的類型是: " . filetype($dir . $file) . "<br />"; } closedir($dh); } } ?>
12. Fonction de chemin de fichier
1. ??>Nous rencontrons souvent la situation du traitement des chemins de fichiers.
Par exemple?:
Le suffixe du fichier doit être supprimé
Le chemin doit supprimer le nom mais pas le répertoire
Uniquement le répertoire le chemin dans le nom du chemin doit être supprimé
Ou analyser chaque partie de l'URL pour obtenir des valeurs indépendantes
Ou même former une URL vous-même
... ....
Il est nécessaire dans de nombreux endroits Fonctions de la classe de traitement de chemin.
Nous avons marqué les fonctions de traitement de chemin couramment utilisées pour tout le monde. Vous pouvez simplement traiter cette fonction de traitement de chemin?:
2.Pathinfo?. >
array pathinfo (string $path)Fonction?: Passer le chemin du fichier et renvoyer les différents composants du fichier
<?php //修改linux 系統(tǒng)/var/wwwroot/某文件權(quán)限為755 chmod("/var/wwwroot/index.html", 755); chmod("/var/wwwroot/index.html", "u+rwx,go+rx"); chmod("/somedir/somefile", 0755); ?>Le résultat est le suivant?:Nom du répertoire du fichier?: d:/www
Nom complet du fichier?: lib.inc.php
Extension du fichier?: php
Aucun fichier nom contenant l'extension?: lib.inc
3.Basename
string basename ( string $path[, string $suffix ]) fonction : Pass dans le chemin et renvoie le nom du fichier
Le premier paramètre passe dans le chemin.
Le deuxième paramètre précise que mon nom de fichier s'arrêtera lorsqu'il atteindra le caractère spécifié.
<?php $path_parts = pathinfo('d:/www/index.inc.php'); echo '文件目錄名:'.$path_parts['dirname']."<br />"; echo '文件全名:'.$path_parts['basename']."<br />"; echo '文件擴(kuò)展名:'.$path_parts['extension']."<br />"; echo '不包含擴(kuò)展的文件名:'.$path_parts['filename']."<br />"; ?>Conclusion?: vous pouvez l'exécuter pour voir si la partie répertoire du fichier est renvoyée.
5.parse_url
mixed parse_url (string $path)Fonction?: diviser l'URL en plusieurs parties
<?php echo "1: ".basename("d:/www/index.d", ".d").PHP_EOL; echo "2: ".basename("d:/www/index.php").PHP_EOL; echo "3: ".basename("d:/www/passwd").PHP_EOL; ?> 4.Dirname dirname(string $路徑) 功能:返回文件路徑的文件目錄部份 <?php dirname(__FILE__); ?>Le résultat est le suivant?:array(8) {
["scheme"]=> string(4) "http"
["host"]=> 8 ) "nom d'h?te"
["port"]=> int(9090)
["utilisateur"]=> string(8) "nom d'utilisateur"
["pass"]=> ( 8) "mot de passe"
["chemin"]=> string(5) "/chemin"
["query"]=> fragment "]=> string(6) "anchor"
}
string http_build_query (données $ mixtes à traiter )
Fonction : Générer une cha?ne de requête dans l'url<?php
$url = 'http://username:password@hostname:9090/path?arg=value#anchor';
var_dump(parse_url($url));
?>
Le résultat est le suivant :
username=liwenkai&area=hubei
http_build_url()
Fonction : Générer une url
La constante PHP_EOL est équivalente à echo "rn" sur la plateforme Windows
est équivalente à echo " ; n" sur la plateforme unixlinux ;
équivalent à echo "r" sur la plateforme mac;
13. Livre d'or texte Nous avons parlé de tant de systèmes de traitement de fichiers, mais nous ne pouvons même pas écrire la chose la plus élémentaire.
à partir de cette section, vous constaterez que vous pouvez écrire de plus en plus de choses.
Regardons ensuite l'effet de démonstration?:
L'interface du formulaire pour écrire le contenu du message dans l'interface suivante?:
L'interface d'affichage après avoir quitté le message :
Jetons un coup d'?il à la structure du fichier?:
write.php ---écrire les données dans message.txtmessage.txt ---Enregistrer le contenu du chat
fichier index.php
<?php //定義一個(gè)關(guān)聯(lián)數(shù)組 $data = [ 'username'=>'liwenkai', 'area'=>'hubei' ]; //生成query內(nèi)容 echo http_build_query($data); ?>
Après avoir lu le contenu qui vient d'être affiché, nous savons que lorsque le fichier est stocké?:
La section est divisée en sections
Le contenu et l'utilisateur sont séparés avant d'utiliser un symbole spécial
écrivons le code write.php pour écrire des messages dans le fichier?:
<?Php //設(shè)置時(shí)區(qū) date_default_timezone_set('PRC'); //讀了內(nèi)容 @$string = file_get_contents('message.txt'); //如果$string 不為空的時(shí)候執(zhí)行,也就是message.txt中有留言數(shù)據(jù) if (!empty($string)) { //每一段留言有一個(gè)分格符,但是最后多出了一個(gè)&^。因此,我們要將&^刪掉 $string = rtrim($string, '&^'); //以&^切成數(shù)組 $arr = explode('&^', $string); //將留言內(nèi)容讀取 foreach ($arr as $value) { //將用戶名和內(nèi)容分開 list($username, $content, $time) = explode('$#', $value); echo '用戶名為<font color="gree">' . $username . '</font>內(nèi)容為<font color="red">' . $content . '</font>時(shí)間為' . date('Y-m-d H:i:s', $time); echo '<hr />'; } } ?> <h1>基于文件的留言本演示</h1> <form action="write.php" method="post"> 用戶名:<input type="text" name="username" /><br /> 留言內(nèi)容:<textarea name="content"></textarea><br /> <input type="submit" value="提交" /> </form>