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

Fermé
phpaddict - 31 août 2006 à 17:05
 phpaddict - 1 sept. 2006 à 16:45
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 ?
A voir également:

1 réponse

crabs Messages postés 908 Date d'inscription lundi 18 avril 2005 Statut Membre Dernière intervention 3 août 2008 506
31 août 2006 à 20:12
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
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
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
Jean-François Pillou Messages postés 18707 Date d'inscription lundi 15 février 1999 Statut Webmaster Dernière intervention 16 février 2023 63 268 > phpaddict
1 sept. 2006 à 15:36
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
phpaddict > Jean-François Pillou Messages postés 18707 Date d'inscription lundi 15 février 1999 Statut Webmaster Dernière intervention 16 février 2023
1 sept. 2006 à 15:39
Oui mais avec le code que j'ai soumis au début, cela affiche "html".
0
Jean-François Pillou Messages postés 18707 Date d'inscription lundi 15 février 1999 Statut Webmaster Dernière intervention 16 février 2023 63 268 > phpaddict
1 sept. 2006 à 15:41
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