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 :

Simplification de syntaxe


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Homme Profil pro
    Conseil en assistance à maîtrise d'ouvrage
    Inscrit en
    Janvier 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Conseil en assistance à maîtrise d'ouvrage
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2015
    Messages : 10
    Points : 10
    Points
    10
    Par défaut Simplification de syntaxe
    Bonjour à tous,

    Je me sert de ce script que j'ai trouvé

    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
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    <?php
    //01 get the html returned from the following url
    $html = file_get_contents('https://fr.wikipedia.org/wiki/Anaconda,_le_prédateur'); 
    //init DOMDocument
    $scriptDocument = new DOMDocument();
    //disable libxml errors
    libxml_use_internal_errors(TRUE); 
    //check if any html is actually returned
    if(!empty($html)){ 
    	//loadHTML
    	$scriptDocument->loadHTML($html);
    	//clear errors for yucky html
    	libxml_clear_errors(); 
    	//init DOMXPath
    	$scriptDOMXPath = new DOMXPath($scriptDocument);
    	//get all the h1's
    	$scriptRow = $scriptDOMXPath->query('//h1');
    	//check
    	if($scriptRow->length > 0){
    		foreach($scriptRow as $row){
    			echo $row->nodeValue . "<br/>";
    		}
    	}
    }
    ?>
    <?php
    //02 get the html returned from the following url
    $html = file_get_contents('https://fr.wikipedia.org/wiki/Eunectes_murinus'); 
    //init DOMDocument
    $scriptDocument = new DOMDocument();
    //disable libxml errors
    libxml_use_internal_errors(TRUE); 
    //check if any html is actually returned
    if(!empty($html)){ 
    	//loadHTML
    	$scriptDocument->loadHTML($html);
    	//clear errors for yucky html
    	libxml_clear_errors(); 
    	//init DOMXPath
    	$scriptDOMXPath = new DOMXPath($scriptDocument);
    	//get all the h1's
    	$scriptRow = $scriptDOMXPath->query('//h1');
    	//check
    	if($scriptRow->length > 0){
    		foreach($scriptRow as $row){
    			echo $row->nodeValue . "<br/>";
    		}
    	}
    }
    ?>
    <?php
    //03 get the html returned from the following url
    $html = file_get_contents('https://fr.wikipedia.org/wiki/Eunectes'); 
    //init DOMDocument
    $scriptDocument = new DOMDocument();
    //disable libxml errors
    libxml_use_internal_errors(TRUE); 
    //check if any html is actually returned
    if(!empty($html)){ 
    	//loadHTML
    	$scriptDocument->loadHTML($html);
    	//clear errors for yucky html
    	libxml_clear_errors(); 
    	//init DOMXPath
    	$scriptDOMXPath = new DOMXPath($scriptDocument);
    	//get all the h1's
    	$scriptRow = $scriptDOMXPath->query('//h1');
    	//check
    	if($scriptRow->length > 0){
    		foreach($scriptRow as $row){
    			echo $row->nodeValue . "<br/>";
    		}
    	}
    }
    ?>
    <?php
    //04 get the html returned from the following url
    $html = file_get_contents('https://fr.vikidia.org/wiki/Grand_anaconda'); 
    //init DOMDocument
    $scriptDocument = new DOMDocument();
    //disable libxml errors
    libxml_use_internal_errors(TRUE); 
    //check if any html is actually returned
    if(!empty($html)){ 
    	//loadHTML
    	$scriptDocument->loadHTML($html);
    	//clear errors for yucky html
    	libxml_clear_errors(); 
    	//init DOMXPath
    	$scriptDOMXPath = new DOMXPath($scriptDocument);
    	//get all the h1's
    	$scriptRow = $scriptDOMXPath->query('//h1');
    	//check
    	if($scriptRow->length > 0){
    		foreach($scriptRow as $row){
    			echo $row->nodeValue . "<br/>";
    		}
    	}
    }
    ?>
    <?php
    //05 get the html returned from the following url
    $html = file_get_contents('https://fr.vikidia.org/wiki/Anaconda'); 
    //init DOMDocument
    $scriptDocument = new DOMDocument();
    //disable libxml errors
    libxml_use_internal_errors(TRUE); 
    //check if any html is actually returned
    if(!empty($html)){ 
    	//loadHTML
    	$scriptDocument->loadHTML($html);
    	//clear errors for yucky html
    	libxml_clear_errors(); 
    	//init DOMXPath
    	$scriptDOMXPath = new DOMXPath($scriptDocument);
    	//get all the h1's
    	$scriptRow = $scriptDOMXPath->query('//h1');
    	//check
    	if($scriptRow->length > 0){
    		foreach($scriptRow as $row){
    			echo $row->nodeValue . "<br/>";
    		}
    	}
    }
    ?>

    comme vous le voyer, il n'y a que les url qui changent.

    J'ai 200 url Wiki à traiter.

    Est-ce qu'il y a un moyen d'écrire la syntaxe plus simplement sans devoir copier à chaque fois le même code pour chaque Url ?

    Merci beaucoup pour votre aide
    Maxwell

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    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
    <?php // 1- Fonction : get the html returned from the following url
    function get_the_html_returned_from_the_following_url( $url )
    {
    	$html = file_get_contents($url); 
    	$return = '';
    	//init DOMDocument
    	$scriptDocument = new DOMDocument();
    	//disable libxml errors
    	libxml_use_internal_errors(TRUE); 
    	//check if any html is actually returned
    	if(!empty($html)){ 
    		//loadHTML
    		$scriptDocument->loadHTML($html);
    		//clear errors for yucky html
    		libxml_clear_errors(); 
    		//init DOMXPath
    		$scriptDOMXPath = new DOMXPath($scriptDocument);
    		//get all the h1's
    		$scriptRow = $scriptDOMXPath->query('//h1');
    		//check
    		if($scriptRow->length > 0){
    			foreach($scriptRow as $row){
    				$return .= $row->nodeValue . "<br/>";
    			}
    		}
    	}
    	return $return;
    }
    ?>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php // 2- Affichage
    echo get_the_html_returned_from_the_following_url( 'https://fr.wikipedia.org/wiki/Anaconda,_le_prédateur' );
    echo get_the_html_returned_from_the_following_url( 'https://fr.wikipedia.org/wiki/Eunectes_murinus' );
    echo get_the_html_returned_from_the_following_url( 'https://fr.wikipedia.org/wiki/Eunectes' );
    echo get_the_html_returned_from_the_following_url( 'https://fr.vikidia.org/wiki/Grand_anaconda' ); 
    echo get_the_html_returned_from_the_following_url( 'https://fr.vikidia.org/wiki/Anaconda' ); 
    ?>
    Dernière modification par Invité ; 30/11/2019 à 10h19.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Conseil en assistance à maîtrise d'ouvrage
    Inscrit en
    Janvier 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Conseil en assistance à maîtrise d'ouvrage
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2015
    Messages : 10
    Points : 10
    Points
    10
    Par défaut
    Bonsoir merci pour votre réponse mais ça me met HTTP ERROR 500

  4. #4
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    j'ai un vieux souvenir qu'il faille indiquer un entête "User-Agent" pour pouvoir récupérer une page wikipedia. mais je n'arrive plus à retrouver d'information sur la raison.

    pour rajouter l'entête à envoyer, vous pouvez utiliser le 3e argument "$context" à l'appel de file_get_contents

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    il manquait juste une accolade à mon code (corrigé depuis) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function get_the_html_returned_from_the_following_url( $url )
    {
    ....
    On affiche bien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Anaconda, le prédateur
    Eunectes murinus
    Eunectes
    Grand anaconda
    Anaconda

  6. #6
    Membre à l'essai
    Homme Profil pro
    Conseil en assistance à maîtrise d'ouvrage
    Inscrit en
    Janvier 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Conseil en assistance à maîtrise d'ouvrage
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2015
    Messages : 10
    Points : 10
    Points
    10
    Par défaut
    Merci beaucoup pour votre aide ça fonctionne très bien
    Max

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

Discussions similaires

  1. [POO] simplification de syntaxe
    Par mussara dans le forum Langage
    Réponses: 6
    Dernier message: 07/11/2006, 14h09
  2. [Syntaxe] Action simultanée sur plusieurs élements
    Par FranT dans le forum Composants VCL
    Réponses: 2
    Dernier message: 20/03/2003, 20h20
  3. [Kylix] Simplifications de l'écriture Kylix/Pascal"
    Par Mr Vincent KLEIN dans le forum EDI
    Réponses: 1
    Dernier message: 11/03/2003, 11h07
  4. Syntaxe TASM <-> MASM
    Par LFC dans le forum Assembleur
    Réponses: 3
    Dernier message: 28/02/2003, 15h56
  5. [VB6] [Syntaxe] Fonction renvoyant un tableau d'objets
    Par Troopers dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 18/10/2002, 15h33

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