Expression régulières en PHP

Signaler
Messages postés
3
Date d'inscription
mercredi 15 novembre 2000
Statut
Membre
Dernière intervention
23 août 2006
-
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
-
  Salut,
<!--[if !supportEmptyParas]-->
J'ai quelque problème sur les expressions régulières en PHP. <!--[endif]-->

<!--[if !supportEmptyParas]-->Je veux récupérer les information qui sont dans <!--[endif]-->

[(.*?) (.*?)]#', $page, $match,
PREG_SET_ORDER);<!--[if !supportEmptyParas]--> <!--[endif]-->

[contact.htm Contact]

[accueil.htm Accueil]<!--[if !supportEmptyParas]--> <!--[endif]-->

Résultat de ça est:

              TITRELIENS

1)           
Contact       contact.htm

2)            Accueil        <!--[if !supportEmptyParas]-->accueil.htm
 <!--[endif]-->

<!--[if !supportEmptyParas]--><!--[if !supportEmptyParas]-->j’arrive à récupérer les urls qui sont entre guillemet et
leur titre mais j’arrive pas à récupérer les urls qui ne sont pas entre
guillemet .
 <!--[endif]-->

Est-ce que quelqu’un peut m’aider sur ce problème ?

Et ma deuxième questions comment on peut ajouter devant  l’url 
la forme http://monsite/contact.htm
et http://monsite/accueil.htm
<!--[if !supportEmptyParas]--> <!--[endif]-->

Merci.

3 réponses

Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
Hello,

<?php
$sString = <<<EOS
[contact.htm Contact]


[accueil.htm Accueil]
EOS;
preg_match_all([mailto:'@href=["]?(\S[^\>"]+)@im' '@href=["]?(\S[^\>"]+)@im'], $sString, $match, PREG_SET_ORDER);
echo '', print_r ($match), '

';
?>


 
Messages postés
3
Date d'inscription
mercredi 15 novembre 2000
Statut
Membre
Dernière intervention
23 août 2006

    Salut [auteurdetail.aspx?ID=58031 malalam],
ton expression régulière 
<!--[if !supportEmptyParas]-->m’envoie que les liens href= , moi je veux les liens [javascript:window.external.AddFavorite($var) qu’il ne faut pas récupérer. <!--[endif]-->

C’est le code que j’ai fait : je veux afficher tout les
liens avec leur titre et le chemin complet.

<!--[if !supportEmptyParas]-->< ?php
$fp = fopen ($url,"r"); //lecture da la page
    while (!feof($fp))
//parcours des lignes
            {
                        $page .= fgets($fp,4096); //lecture
contenu ligne
            <!--[if !supportEmptyParas]-->} <!--[endif]-->

preg_match_all('@href=["]?(\S[^\>"]+)@im',
$page, $match, PREG_SET_ORDER);

//m’envoie les liens entre guillemet et les titres

//preg_match_all('#](.*?)#', $page, $match,
PREG_SET_ORDER);

//preg_replace();

?>
                                    ----

                                    Titre du
lien
, <!--de la forme Accueil -->
                                    Lien-1
, ><!--de
la forme accueil.htm-->
                                    URL
, <!--de
la forme http://www.monsite.com/accueil.htm-->
                             

<?php                                   
                                    foreach($match as $var)
                                    {

?>
                                                ----

                                                <?php
echo $var[2]; ?>,
                                                <?php echo $var[1];
?>,
                                                ,
                                               

<?php
                                                //echo
$var[1].\"  \".$var[2].\"
\";

                                }
?>                             

<?php                     

            fclose($fp);
            //fermeture de la page
?>

</html>
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
Je n'avais pas compris désolé, mon expression renvoie tous les liens dans l'attribut href de la balise a, qu'ils soient ou non entourés de guillemets.
Mais bon il y a peu à modifier pour obtenir ce que tu veux