[PHP] J'aimerais qu'on m'explique ce code

phpaddict -  
 phpaddict -
Bonjour,

J'ai 2 questions sur un même code.

J'aimerais qu'on m'explique ce code et pour quelles raisons il affiche ce qu'il affiche :

<?php

$url="https://www.google.fr/?gws_rd=ssl";

if (!($contents = file_get_contents($url)))
{
echo "On ne peut ouvrir l'URL";
exit;
}

$pattern = '([a-z]+)';

if (eregi($pattern, $contents, $quote))
{
echo $quote[1];
}

?>

1) Donc ce code affiche "html".
Si on remplace [a-z]+ par [0-9]+, cela affiche "8859".

Si quelqu'un pouvait m'expliquer :L

2) Puis également pourquoi lorsqu'on met 0 à la place de 1 dans :

echo $quote[1];

cela fait pareil.

A quoi correspond le chiffre dans ce cas ?

1 réponse

  1. crabs Messages postés 909 Statut Membre 507
     
    Salut,
    1) regardes la documentation de eregi() : https://www.php.net/eregi
    2) l'expression régulière est en réalité double : présence des paranthèses
    donc quotes[0] contient l'expression globale
    et quotes[1] celle contenu entre les paranthèses
    Essaies avec le code suivant, cela sera peut-être plus parlant :
    <?php                                                                           
    header( "Content-type: text/plain" ) ;
    $url="https://www.google.fr/?gws_rd=ssl";                                                    
    
    if (!($contents = file_get_contents($url)))                                     
        {                                                                           
        echo "On ne peut ouvrir l'URL";                                             
        exit;                                                                       
        }                                                                           
    
    $pattern = '<([a-z]+)>';
    
    if (eregi($pattern, $contents, $quote))                                         
        {                                                                           
        print_r( $quote ) ;
        }                                                                           
    ?>
    

    Sinon 8859 est la première chaine de caratères constituée uniquement de
    chiffres dans la page d'accueil de google.

    A+, crabs
    0
    1. phpaddict
       
      Merci beaucoup de ta réponse,

      Je vais regarder ça dans la journée :D
      Je te tiens au courant de mes avancées ;p
      0
    2. phpaddict
       
      Oui merci pour la documentation, mais eregi() sert plus souvent pour des mails qu'autres choses, du coup sur la doc, ya rien sur mon code.

      Merci pour ton code, tu m'as montré des trucs que j'ignorais.
      Sinon pour le fait que cela affiche html, cela voudrait donc dire, que cela affiche ce qu'il y a dans le code source ?

      Parce qu'il n'y pas de mot "html" sur la page google.
      Pareil pour le nombre "8859".

      Là par contre tu me dis que c'est la première chaîne de caractères constituées uniquements de chiffres.
      Mais sur la page Google, où se trouve cette chaîne ?
      Elle ne figure si sur la page, ni dans le code source.
      0
    3. Jean-François Pillou Messages postés 18961 Date d'inscription   Statut Webmaster Dernière intervention   63 308 > phpaddict
       
      Parce qu'il n'y pas de mot "html" sur la page google.
      Pareil pour le nombre "8859". 


      Regarde le code source de la page ;-)
      0
    4. phpaddict > Jean-François Pillou Messages postés 18961 Date d'inscription   Statut Webmaster Dernière intervention  
       
      Oui mais avec le code que j'ai soumis au début, cela affiche "html".
      0
    5. Jean-François Pillou Messages postés 18961 Date d'inscription   Statut Webmaster Dernière intervention   63 308 > phpaddict
       
      Oui, car la première suite de lettres que l'expression rencontre est :

      <html>
      <head>
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <title>Google</title>
      0