Expression régulières en PHP

dragon_noir1 Messages postés 3 Date d'inscription mercredi 15 novembre 2000 Statut Membre Dernière intervention 23 août 2006 - 28 juin 2006 à 13:30
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 - 28 juin 2006 à 16:08
  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

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
28 juin 2006 à 13:59
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), '

';
?>


 
0
dragon_noir1 Messages postés 3 Date d'inscription mercredi 15 novembre 2000 Statut Membre Dernière intervention 23 août 2006
28 juin 2006 à 15:22
    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>
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
28 juin 2006 à 16:08
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
0
Rejoignez-nous