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ère tout les lien d'une pae


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Janvier 2011
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 40
    Par défaut récupère tout les lien d'une pae
    salut tout le monde j'ai ce code qui récupère le titre d'une page et il fonction bien ,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $ch = curl_init();
    $timeout = 5; // set to zero for no timeout
    curl_setopt ($ch, CURLOPT_URL, 'http://www.site.com');
    curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
    $file_contents = curl_exec($ch);
    curl_close($ch);
    	if (eregi("<title>(.*)</title>", $file_contents, $Sortie)) $Titre = $Sortie ;
    echo $Titre[1] ;

    mon prob c que je veux utiliser ce code pour obtenir tous les lien d'une page

    exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    eregi("<a href='(.*)'>", $file_contents, $Sortie)) $Titre = $Sortie ;
    mais ca marche pas !!

  2. #2
    Membre Expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Par défaut
    Bonsoir,

    voici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $url = 'http://le-site.fr';
    $html = file_get_contents($url);
    preg_match_all('/<a (.*?)href="(.*?)"(.*?)>(.*?)<\/a>/i', $html, $matches);
    echo '<pre>' . print_r($matches, TRUE) . '</pre>';

  3. #3
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 420
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 420
    Par défaut
    Comme c'est assez simple tu pourrais aussi utiliser DomDocument ce qui devrait être un peu plus rapide :

    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
    <?php
    $page_cible = 'http://www.developpez.net/forums/d1039363/php/langage/recupere-lien-pae/';
     
    $tab = array();
     
    $dom = new DOMDocument;
     
    if(@$dom->loadHTMLFile($page_cible))
    	{
    		$domliste = $dom->getElementsByTagName('a');
     
    		foreach($domliste as $a) 
    		{
    			//$a->getAttribute('href') contenu du href
    			$attribut_href = $a->hasAttributes() ? $a->getAttribute('href') : null;
    			//$a->nodeValue contenu du libellé entre <a> et </a>
    			$tab[$attribut_href] = $a->nodeValue;
    		}
    	}
    	else
    	{
    		echo 'le document '.$page_cible. ' n\'a pas pu être chargé';
    	}
     
    echo '<pre>';
    print_r($tab);
    echo '</pre>';
    ?>
    Par contre si tu utilises les expressions régulières prends soin d'utiliser preg_match, car ereg... est déprécié depuis php 5.3

  4. #4
    Membre Expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Par défaut
    Tout à fait, mais il faudrait pour cela un code XHTML parfaitement valide.

  5. #5
    Membre averti
    Inscrit en
    Janvier 2011
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 40
    Par défaut
    Merci ca marche bien

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    Citation Envoyé par ThomasR Voir le message
    Tout à fait, mais il faudrait pour cela un code XHTML parfaitement valide.
    non DOMDocument lit le le HTML, le DOM c'est différent du XML

  7. #7
    Membre Expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Par défaut
    @stealth35, en effet. Par contre çà a pas l'air de gérer certaines choses qu'HTML5 autorise de nouveau (cf: http://alanstorm.com/parsing_html_with_php).
    ++

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Avoir un message de confirmation sur tout les liens d'une page
    Par Oberown dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 27/12/2012, 12h02
  2. récupéré la liste de tout les attributs d'une classe
    Par php_faboul dans le forum Langage
    Réponses: 2
    Dernier message: 07/01/2010, 18h29
  3. Réponses: 2
    Dernier message: 09/07/2008, 15h49
  4. Pb effacer toutes les tables d'une bd access
    Par madiam2004 dans le forum Bases de données
    Réponses: 5
    Dernier message: 30/05/2004, 16h24
  5. Sélection de toute les tables d'une base
    Par lord_paco dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 21/07/2003, 15h56

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