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 :

Récupérer le titre d'une page


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 21
    Points : 22
    Points
    22
    Par défaut Récupérer le titre d'une page
    Bonjour,

    Je voudrais extraire le titre d'une page HTML

    Voici mon code simplifié :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?
    $fp = fopen("http://www.monsite.com/index.php","r");
    while (!feof($fp)) { 
      $page .= fgets($fp, 4096); 
    }
     
    $titre = eregi("<title>(.*)</title>",$page,$regs);
    echo $regs[1]; // J'affiche le titre de la page
    ?>
    Malheureusement s'il existe une autre balise </title> dans la page, je vais récupérer tout ce qu'il y a entre le premier <title> et le dernier </title>

    Ma question est : Comment limiter la fonction eregi pour qu'il s'arrête juste après le premier </title> ?

  2. #2
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?
    $fp = fopen("http://www.monsite.com/index.php","r");
    while (!feof($fp)) {  $page .= fgets($fp, 4096);
    }
    $titre = preg_match("#\<title\>(.*)\</title\>#Ui",$page);
    echo $titre[0]; // J'affiche le titre de la page
    ?>
    Et avec ça?

  3. #3
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Pour corriger Anduriel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $fp = fopen("http://www.developpez.com/","r");
    $page = '';
    while (!feof($fp)) {
    	$page .= fgets($fp, 4096);
    }
    preg_match("#<title>(.*)</title>#Ui", $page, $titre);
    echo $titre[1];

    Cordialement, Julp.

  4. #4
    Membre éprouvé
    Avatar de viviboss
    Profil pro
    Inscrit en
    Août 2006
    Messages
    943
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Août 2006
    Messages : 943
    Points : 1 248
    Points
    1 248
    Par défaut
    .....Et puis question à la c** : pourquoi il y aurait plus d'1 </title> dans ta page ?!?
    Veni Vidi Vici
    -------------------------
    Mes articles : developpez.com ou bien vbview.net
    -------------------------
    Et SURTOUT ne pas oublier la bible PHP : --> php_manual_fr.chm!!!
    Et aussi : --> pear_manual_fr.chm!!!

    Ou encore : --> Les tutoriaux & cours PHP de Développez.com
    -------------------------

  5. #5
    Membre à l'essai
    Inscrit en
    Août 2007
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 34
    Points : 22
    Points
    22
    Par défaut svp jais bousoin d' aide
    je utilise cette fonction pour prondre le titre d'aun page
    ____________________________________________
    $fp = fopen("http://www.dajij.com","r");
    $page = '';
    while (!feof($fp)) {
    $page .= fgets($fp, 4096);
    }

    preg_match("#<title>(.*)</title>#Ui", $page, $titre);
    echo $titre[1];
    }
    ____________________________________________

    mais ci la page que je veut prendre son titre a ce code


    <html>
    <title>welcom</title>
    <title>welcom1</title>
    <title>welcom2</title>
    <title>welcom3</title>
    </html>

    moi je veut prendre tous les titre welcom est welcom1 est welcom2 .....
    svp aider moi et Merci .

  6. #6
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Utilisez preg_match_all au lieu de preg_match, qui se limite à une seule capture, mais c'est un peu "tordu" comme structure HTML.

Discussions similaires

  1. [AJAX] Récupérer le titre d'une page web
    Par Exiam dans le forum jQuery
    Réponses: 4
    Dernier message: 07/08/2013, 15h45
  2. Titre d'une page Internet
    Par Ramses__ dans le forum Web & réseau
    Réponses: 4
    Dernier message: 29/09/2006, 11h51
  3. [Mail] Récupérer tous les liens et les titres d'une page
    Par dragon noir dans le forum Langage
    Réponses: 12
    Dernier message: 03/07/2006, 16h09
  4. [Sécurité] comment récupérer le subject dans une page jsp?
    Par lalakers dans le forum Servlets/JSP
    Réponses: 13
    Dernier message: 13/07/2005, 11h42
  5. [PDF - FOP - XSL] Récupérer le numéro d'une page
    Par caro. dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 15/02/2005, 11h35

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