IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Lire fichier suivant son extension !!


Sujet :

Langage PHP

  1. #1
    Membre régulier Avatar de Shandler
    Profil pro
    Inscrit en
    Février 2005
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 514
    Points : 107
    Points
    107
    Par défaut Lire fichier suivant son extension !!
    Bonjour,

    J'ai recherché partout comment faire pour ouvrir un fichier mais suivant son extension et non le nom complet et je ne trouve pas.
    Avez vous une solution a mon probléme ??

    Exemple : *.txt

    Voici mon code qui marche trés bien mais en insérant le nom exacte du fichier.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    <?php
    $essai="";
    $essai2="";
    $essai3="";
    $essai4="";
     
     
    if(!$file = file_get_contents("./relever/movie.txt"))
    {
    echo "pas bien";
    }
    else
    {
    $arret = explode('azerty', $file);
    $partie_1 = $arret[0];
    $partie_2 = $arret[1];
    $partie_3 = $arret[2];
    $partie_4 = $arret[3];
    }
    ?>
    Ah aussi une petite une question quand on utilise la fonction file_get_contents() faut fermer le fichier je pense mais avec fclose() ca marche pas

    Je vous remercie de votre aide !!

  2. #2
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    file get contents ferme le fichier c est bon.

    pour le reste :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
           /**
    	* @desc Retourne les fichiers d'un répertoire
    	* @param $dir String le répertoire de base
    	* @param $ext String l'extension, si pas précisée, toutes les extensions
    	* @return array() Un tableau avec les noms de fichiers
    	*/
    	function getFiles($dir,$ext=null)
    	{
    		$tab = array();
    		if (is_dir($dir)) 
    		{
    		    if ($dh = opendir($dir)) 
    		    {
    		        while (($file = readdir($dh)) !== false) 
    		        {
    		        	if (is_file($dir."/".$file))
    		        	{
    		        		if($ext != null)
    		        		{
    		        			if(substr($file,-strlen($ext)) == $ext) 
           					 		array_push($tab,$file);
    		        		}
    		        		else 
    		        			if($file != "." && $file != "..")
    		        				array_push($tab,$file);
    		        	}
    		        }
    		        closedir($dh);
    		    }
    		}
    		return $tab;	
    	}
     
     
    	$files = getFiles(".",".txt");
    	foreach($files as $f)
    		echo $f,'<br />';

  3. #3
    Membre habitué Avatar de tony montana
    Profil pro
    Inscrit en
    Février 2004
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 114
    Points : 136
    Points
    136
    Par défaut
    salut,
    autant utilisé la fonction php quasiment faite pour ca :

    Citation Envoyé par [url
    http://fr.php.net/glob[/url]]Recherche des chemins qui vérifient un masque
    [...]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
    $files = glob("*.txt");
    foreach ($files as $filename) {
       echo "$filename occupe " . filesize($filename) . " octets\n";
    }
    ?>
    A moins que chez ton hébergeur cette fonction est été désactivée.
    (Chez free.fr je crois que c'est le cas, suite à la faille découverte sur cette fonction ...)

  4. #4
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    ah ben je la connaissais pas celle la !
    c est quoi la faille de securité ?

  5. #5
    Membre régulier Avatar de Shandler
    Profil pro
    Inscrit en
    Février 2005
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 514
    Points : 107
    Points
    107
    Par défaut
    Merci tony ca marche nickel même si celle de siddth marche trés bien.
    Mais que veut tu dire par faille de sécurité siddth??

    Merci a vous de m'avoir aidé !!

  6. #6
    Membre habitué Avatar de tony montana
    Profil pro
    Inscrit en
    Février 2004
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 114
    Points : 136
    Points
    136
    Par défaut
    expliquée ici :
    http://www.zone-h.fr/fr/news/read/id=36/

  7. #7
    Membre régulier Avatar de Shandler
    Profil pro
    Inscrit en
    Février 2005
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 514
    Points : 107
    Points
    107
    Par défaut
    Si jai bien compris ton article il ne vaut mieux pas utiliser cette fonction ??

  8. #8
    Membre habitué Avatar de tony montana
    Profil pro
    Inscrit en
    Février 2004
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 114
    Points : 136
    Points
    136
    Par défaut
    Citation Envoyé par Shandler
    Si jai bien compris ton article il ne vaut mieux pas utiliser cette fonction ??
    oui vaut mieux utiliser la fonction proposée par siddh dans le sens où cela fonctionnera même sur les hébergeurs qui ont la fonction glob désactivée, donc ca évite pour toi de te poser la question de savoir si l'hébergeur autorise ou non cette fonction.

    Mais cela ne pose pas pour ton site de problème de sécurité (sauf si tu met en paramètre de la fonction glob une valeur envoyée par l'utilisateur (par exemple via un formulaire) , mais ca m'étonnerait fortement que tu fasse ca)

    C'est plutot pour les hébergeurs que cela pose un problème de sécurité.

  9. #9
    Membre régulier Avatar de Shandler
    Profil pro
    Inscrit en
    Février 2005
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 514
    Points : 107
    Points
    107
    Par défaut
    siddth pourrait m'expliquer comment dans ton code je puis aller chercher des fichiers autre part que dans le répertoire courant car j'ai décortiqué le code et je voie comment mettre un dossier autre que celui courant.
    Merci de ton aide

  10. #10
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    ben quand t appel getFiles, tu lui passe pas "." en premier mais le chemin vers l autre repertoire

  11. #11
    Membre régulier Avatar de Shandler
    Profil pro
    Inscrit en
    Février 2005
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 514
    Points : 107
    Points
    107
    Par défaut
    Je comprend pas car ca marche pas.

    Quand je met par exemple $files = getFiles("./essai/",".txt"); et quand mon arborescence se presente ainin :

    Repertoire code (se trouve le fichier.php avec le code pour lire juste via l'extension) et dans se même repertoire jai un répertoire essai qui lui contient un fichier texte.

    Et donc il ne veut pas aller voir dans se répertoire et je comprend pas !!

    Je te remercie de ton aide !!

  12. #12
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    met "./essai" sans le / de fin

  13. #13
    Membre régulier Avatar de Shandler
    Profil pro
    Inscrit en
    Février 2005
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 514
    Points : 107
    Points
    107
    Par défaut
    toujours pareil, ca rentre pas dans le répertoire, je pense pas qu'il est besoin d'une biblio special pour ca sous php.

    merci a toi

  14. #14
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    essayes de mettre juste getFiles("essai",".txt")

  15. #15
    Membre régulier Avatar de Shandler
    Profil pro
    Inscrit en
    Février 2005
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 514
    Points : 107
    Points
    107
    Par défaut
    Ca marche toujours pas, et je pense avoir tout essayé même laissant getfile() tous seul enfin je voie pas la.

    merci !!!

  16. #16
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    bon derniere solution, mettre un chemin absolu,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $rep = dirname(__FILE__);
    $files = getFiles($rep.'/essai',".txt');

  17. #17
    Membre régulier
    Inscrit en
    Octobre 2005
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 76
    Points : 76
    Points
    76
    Par défaut
    En ajoutant la fonction realpath pour éviter les surprises (passages de windows à linux et vice versa)

  18. #18
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Citation Envoyé par the_jeck
    et vice versa)
    Quel idée de passer de linux à win !

  19. #19
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    le seul interet c est de tester sous ie, marre des machine virtuelles !

  20. #20
    Membre régulier
    Inscrit en
    Octobre 2005
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 76
    Points : 76
    Points
    76
    Par défaut
    Citation Envoyé par Mr N.
    Citation Envoyé par the_jeck
    et vice versa)
    Quel idée de passer de linux à win !
    Le client est souvent un buse, mais le client est roi... hélas...

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Connaitre le type d'un fichier sans son extension
    Par ionone dans le forum Entrée/Sortie
    Réponses: 5
    Dernier message: 15/07/2009, 14h19
  2. Récupérer le nom d'un fichier sans son extension
    Par Shoot dans le forum Langage
    Réponses: 5
    Dernier message: 09/04/2008, 09h32
  3. lire fichier avec l'extension .c ou .h en c
    Par lolomesnil dans le forum C
    Réponses: 1
    Dernier message: 13/04/2007, 10h18
  4. Séparer le nom d'un fichier de son extension
    Par codial dans le forum Delphi
    Réponses: 3
    Dernier message: 16/03/2007, 18h29
  5. [Tableaux] Séparer un nom de fichier de son extension
    Par Empty_body dans le forum Langage
    Réponses: 5
    Dernier message: 24/03/2005, 14h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo