Besoin d'aide pour decrypter script php

Résolu
debutant -  
 debutant -
bonjour , j'ai du mal a interpréter deux ligne du code php ci dessous
je mettrais en gras a coter de la ligne ce que je ne comprend pas

<?php


$dir = isset($_POST['dir']) ? $_POST['dir'] : '';
$fic = isset($_POST['fic']) ? $_POST['fic'] : '';
$dir = (!empty($dir)) ? $dir : '.';

if(!empty($fic)) {
if ($handle = opendir($dir)) {
while (false !== ($file = readdir($handle))) {
if($file == $fic) {

echo '<br/>le fichier est trouvé<br/>';

}
}

closedir($handle);
}
}
?>
<form action="<?php $_SERVER['PHP_SELF'];?>" method="POST" >
<p><label for="dir">répertoire :</label><input id="dir" type="text" name="dir" /></p>
<p><label for="fic">fichier :</label><input id="fic" type="text" name="fic" /></p>
<p><input type="submit" value="go" /></p>
</form>
A voir également:

4 réponses

123pierre Messages postés 48 Date d'inscription   Statut Membre Dernière intervention   2
 
Hello,

$_POST['dir']
c'est ce que tu as recuperer du formulaire de la page precedente.
$_POST recupere les element d'un formulaire postée en POST (Contrairement a GET)
['dir']: C'est la valeure rentrée dans le champs appelée 'dir'

(false !== ($file = readdir($handle))):
$handle est une variable qui a ete cree plus haut et qui contient un fichier externe $dir. ($dir doit l'adresse du fichier)
> en gros la boucle est ouverte tant que le fichier ouvert $dir peut etre lu..

A+,

Pierre
0
juanou Messages postés 137 Date d'inscription   Statut Membre Dernière intervention   58
 
En ce qui concerne la première portion de code mise en gras, je me demande si "débutant" n'avait pas plutôt un problème pour interprérer la structure avec point d'interrogation.

On appel ça un "opérateur ternaire".
Tu en trouveras une bonne présentation à cette page : PHP - Les structures conditionnelles

Mais pour résumer
$dir = isset($_POST['dir']) ? $_POST['dir'] : '';
revient à faire
if ( isset($_POST['dir']) ) $dir = $_POST['dir'] ;
else $dir = '';
0
juanou Messages postés 137 Date d'inscription   Statut Membre Dernière intervention   58
 
et quant à while (false !== ($file = readdir($handle))), on peut peut-être entrer dans le détail :

!== signifie "différent, et de type différent".
C'est un peu comme != (qui signifie "différent de"), à ceci près qu'on considère que 0 est différent de false et de null.
Ca évite parfois des confusions.

$file = readdir($handle) retourne le contenu du dossier $handle dans $file, mais un fichier à la fois.
La première fois que tu fais $file = readdir($handle), $file prendra la valeur du premier fichier, la deuxième fois du deuxième, etc. Et quand tous fichiers auront été passés en revue, $file prendra false pour valeur.
la structure while (false !== ($file = readdir($handle))) signifie donc que la boucle while va se répéter en attribuant à chaque fois à $file la valeur d'un des fichiers du dossier $handle, jusqu'à ce que tous les fichiers de $handle aient été examinés.

Voilà.
Ca te semble clair ?
0
debutant
 
bonjour,

oui c'est clair je vous remercie de votre aide
a bientôt
0