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

PHP & Base de données Discussion :

problème de recuperation des titres de fichiers html


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Août 2009
    Messages
    308
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 308
    Par défaut problème de recuperation des titres de fichiers html
    Bonjour,
    Je reviens sur mon problème de recuperation des titres de mes fichiers.
    En fait j'ai mes fichiers(html) dans un dossier.
    Je dois parcourrir tous les fichier de mon dossier et recuperer le titre de chaque fichier pour l'inserrer dans un champ d'une table de ma BD. Mais jusque là j'ai des petits problèmes. En plus du titre il prend le contenu du fichier or j'ai besoin uniquement du titre pour inserrer dans ma BD.

    Merci bien de m'aider!


    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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
     
    <?php
    include("connexion.php");
     
       $page="";
       $fp="";
       $regs[1]="";
     
     
    	   if($dossier = opendir('D:\Program Files\EasyPHP 2.0b1\www\jo5'))
     
    			{
     
    				while ($Fichier = readdir($dossier)) 
    				 {
     
      						if ($Fichier != "." && $Fichier != "..") 
    						 {
        							$nomFichier = $Fichier;
     
    $fp = fopen("D:\Program Files\EasyPHP 2.0b1\www\jo5/$nomFichier","r");
     
     
    while (!feof($fp)) { //on parcourt toutes les lignes
      $page .= fgets($fp, 4096); // lecture du contenu de la ligne
      $titre = eregi("<title>(.*)</title>",$page,$regs); //on isole le titre
     															}
     
     
     
    		if($fp)
    			fclose($fp);
     
     
     
     
    }	
     
     
     
     
     
    }
     
    }	
     
    ?>

  2. #2
    Membre averti
    Inscrit en
    Juin 2008
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 29
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    preg_match("#<title>(.*)</title>#Ui", $page, $regs);
    $titre = $regs[1];

  3. #3
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Février 2006
    Messages : 81
    Par défaut
    en plus la regexp tu dois l'exécuter après la boucle (qui recupere le contenu du fichier)

  4. #4
    Membre éclairé
    Inscrit en
    Août 2009
    Messages
    308
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 308
    Par défaut problème de recuperation des titres
    Bonjour,

    J'ai toujours des problème après avoir fait vos corrections.
    Voici l'erreur qu'il me donne:
    Notice: Undefined offset: 1 in D:\Program Files\EasyPHP 2.0b1\www\monsites\essai_titre.php on line 43
    N° 2009-319/PRES/PM/MID du 18 mai 2009. JO N° 25 DU 18 JUIN 2009
    N° 2009-319/PRES/PM/MID du 18 mai 2009. JO N° 25 DU 18 JUIN 2009

    J'ai 3 fichiers dans mon repertoire designé et il me donne le titre d'un seul fichier qu'il dupliqe.

    Voici le code actuel :
    Merci bien de m'aider!

    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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Untitled Document</title>
    </head>
     
    <body>
     
    <?php
     
    include("connexion.php");
     
     
       $page="";
       $fp="";
       $regs[1]="";
     
     
    	   if($dossier = opendir('D:\Program Files\EasyPHP 2.0b1\www\jo5'))
     
    			{
     
    				while ($Fichier = readdir($dossier)) 
    				 {
    				     if ($Fichier != "." && $Fichier != "..") 
    						 {
        							$nomFichier = $Fichier;
    	                      $fp = fopen("D:\Program Files\EasyPHP 2.0b1\www\jo5/$nomFichier","r"); //lecture du fichier
     
     
    		while (!feof($fp)) {       //on parcourt toutes les lignes
     	 $page .= fgets($fp, 4096); // lecture du contenu de la ligne
     
    					}
     
    		preg_match("#<title>(.*)</title>#Ui", $page, $regs);
     
    		$titre= $regs[1];	
    		echo $titre;
    		if($fp)
    			fclose($fp);
    			}
     
     
    		}
     
    }	
     
    ?>
    </body>
    </html>

  5. #5
    Membre averti
    Inscrit en
    Juin 2008
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 29
    Par défaut
    et si tu mets

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if(isset(($fp)) {
     
        fclose($fp);
     
    }

  6. #6
    Membre chevronné
    Avatar de hornetbzz
    Homme Profil pro
    Directeur commercial
    Inscrit en
    Octobre 2009
    Messages
    482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France

    Informations professionnelles :
    Activité : Directeur commercial

    Informations forums :
    Inscription : Octobre 2009
    Messages : 482
    Par défaut
    Je crois qu'il y a une boulette dans la regex et qu'en plus, tu oublies de réinitaliser $page

    Et en petit commentaire, une bonne indentation rend le code plus lisible et évites les erreurs basiques.

    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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Untitled Document</title>
    </head>
     
    <body>
     
    <?php
     
    include("connexion.php");
     
     
       $page="";
       $fp="";
       $regs[1]="";
     
       // Je pense qu'il y avait une erreur dans la regex de Lapin, essayes avec ça
       $regex="#<title>(.+)</title>#" ;
     
    if($dossier = opendir('D:\Program Files\EasyPHP 2.0b1\www\jo5')) {
     
    	while ($Fichier = readdir($dossier))  {
    		if ($Fichier != "." && $Fichier != "..") 
    		{
    			// Penses à réinitialiser $page avant d'ajouter d'autres infos à son contenu...
    			$page = "";
     
    			$nomFichier = $Fichier;
     
    			$fp = fopen("D:\Program Files\EasyPHP 2.0b1\www\jo5/$nomFichier","r"); //lecture du fichier
     
    			while (!feof($fp)) {       //on parcourt toutes les lignes
    				$page .= fgets($fp, 4096); // lecture du contenu de la ligne
    			}
     
    			// La regex DOIT correspondre au format des titres que tu veux récupérer dans tes fichiers sinon, tu ne récupereras jamais rien
    			if (preg_match($regex, $page, $regs)) {
    				$titre = $regs[1];
    				echo $titre;
    			}
    			else {
    				echo "titre non trouvé: soit un probleme dans la regex, soit pas de balise <title> :-)";
    			}
     
    			if($fp) {
    				fclose($fp);
    			}
    		}
    	}
    }
     
    ?>
    </body>
    </html>

Discussions similaires

  1. [MySQL] problème de recuperation des titres de mes fichiers
    Par Abou Zar dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 28/12/2009, 14h57
  2. Réponses: 6
    Dernier message: 28/12/2007, 22h34
  3. Recuperation des noms de fichiers contenu dans un repertoire
    Par fafabzh6 dans le forum VBA Access
    Réponses: 2
    Dernier message: 23/10/2007, 18h45
  4. Problème de visibilité des titres des objets Uipanel
    Par Flo22 dans le forum Interfaces Graphiques
    Réponses: 10
    Dernier message: 05/10/2007, 12h04
  5. Récupération des informations du fichier mdl
    Par Sensib dans le forum MATLAB
    Réponses: 3
    Dernier message: 17/11/2006, 17h16

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