Précédent   Forum des professionnels en informatique > PHP > Langage > Regex
Regex Forum d'entraide sur les expressions rationnelles PHP. Avant de poster -> FAQ regex, Cours de regex et Sources de regex
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 27/12/2006, 16h26   #1
Membre Expert
 
Inscription : septembre 2002
Messages : 1 638
Détails du profil
Informations personnelles :
Âge : 48
Localisation : France, Hérault (Languedoc Roussillon)

Informations forums :
Inscription : septembre 2002
Messages : 1 638
Points : 1 000
Points : 1 000
Par défaut Extraire URL d'une page php

Salut à tous,

Pour extraire les urls d'une page php avec les expressions régulières, j'utilise la code suivant :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
$pattern = "^" . "http://monsite/" . "(.*).php$";
 
$result = eregi($motif, $page, $regs);
 
 
    if (result > 0)
    {
        foreach ($regs as $lien)
        {
            $tab[] = $lien;
        }
 
        return $tab;
    }
Et bien devinez quoi ? Ce code ne fonctionne pas car il ne trouve aucune des urls de la page.


Mais pourquoi donc : où est donc l'erreur ?

Merci d'avance.
__________________
La connaissance ne sert que si elle est partagée.
http://ms2i.net
Mister Nono est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/12/2006, 16h33   #2
Inactif
 
Avatar de Kerod
 
Inscription : septembre 2004
Messages : 11 753
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 11 753
Points : 14 585
Points : 14 585
Puis-je te suggérer cette solution : ExpressionsRégulières

Mais le gros problème vient de ton masque et surtout de l'échappement des caractères spécifiques aux RegEx
Kerod est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/12/2006, 16h37   #3
Membre Expert
 
Inscription : septembre 2002
Messages : 1 638
Détails du profil
Informations personnelles :
Âge : 48
Localisation : France, Hérault (Languedoc Roussillon)

Informations forums :
Inscription : septembre 2002
Messages : 1 638
Points : 1 000
Points : 1 000
Citation:
Envoyé par Kerod
Puis-je te suggérer cette solution : ExpressionsRégulières

Mais le gros problème vient de ton masque et surtout de l'échappement des caractères spécifiques aux RegEx
Merci pour la référence : mais je l'ai déjà lue sans trouver la réponse au problème.

En fait, je pense comme toi : le pattern n'est pas exact, mais je ne sais pas où.

A+
__________________
La connaissance ne sert que si elle est partagée.
http://ms2i.net
Mister Nono est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/12/2006, 16h41   #4
Inactif
 
Avatar de Kerod
 
Inscription : septembre 2004
Messages : 11 753
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 11 753
Points : 14 585
Points : 14 585
Tes urls sont dans des liens ou juste tel quels sur la page ?
Kerod est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/12/2006, 16h42   #5
Membre Expert
 
Inscription : septembre 2002
Messages : 1 638
Détails du profil
Informations personnelles :
Âge : 48
Localisation : France, Hérault (Languedoc Roussillon)

Informations forums :
Inscription : septembre 2002
Messages : 1 638
Points : 1 000
Points : 1 000
Citation:
Envoyé par Kerod
Tes urls sont dans des liens ou juste tel quels sur la page ?
Elles peuvent être dans des balise <a href=""> ou dans du code javascript (qui sert à la validation de formulaire).
__________________
La connaissance ne sert que si elle est partagée.
http://ms2i.net
Mister Nono est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/12/2006, 16h43   #6
Inactif
 
Avatar de Kerod
 
Inscription : septembre 2004
Messages : 11 753
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 11 753
Points : 14 585
Points : 14 585
Déjà il faut savoir une chose : le caractère ^ est a utilisé uniquement si c'est le début de la chaîne or tu souhaites récupérer toutes les urls donc il te renverra rien du tout, sauf si le permier élément de ta chaîne est une url

Code :
$pattern = "http://monsite/" . "(.*).php$";
et je verrai :
Code php :
eregi("#http:\/\/monsite\/(.*)\.php#Usi", $page, $regs);
Kerod est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/12/2006, 16h46   #7
Membre Expert
 
Inscription : septembre 2002
Messages : 1 638
Détails du profil
Informations personnelles :
Âge : 48
Localisation : France, Hérault (Languedoc Roussillon)

Informations forums :
Inscription : septembre 2002
Messages : 1 638
Points : 1 000
Points : 1 000
Merci Kerod, je viens d'essayer ton pattern :
Code :
1
2
 
$result = eregi("#http:\/\/localhost\/monsite\/(.*)\.php#Usi", $page, $regs);
... mais toujours aucun résultat.
__________________
La connaissance ne sert que si elle est partagée.
http://ms2i.net
Mister Nono est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/12/2006, 16h47   #8
Inactif
 
Avatar de Kerod
 
Inscription : septembre 2004
Messages : 11 753
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 11 753
Points : 14 585
Points : 14 585
Tu peux donner un exemple de chaine ?
Kerod est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/12/2006, 16h52   #9
Membre Expert
 
Inscription : septembre 2002
Messages : 1 638
Détails du profil
Informations personnelles :
Âge : 48
Localisation : France, Hérault (Languedoc Roussillon)

Informations forums :
Inscription : septembre 2002
Messages : 1 638
Points : 1 000
Points : 1 000
Citation:
Envoyé par Kerod
Tu peux donner un exemple de chaine ?
Par exemple et pour rester simple :
Code :
1
2
3
4
5
6
 
<a href='http://www.jade-immobilier.eu/immobilier-FR.php' >
 
ou bien :
 
<a href="http://www.jade-immobilier.eu/immobilier-FR.php" >
ou encore :

Code :
1
2
 
document.forms[0].action = "http://www.jade-immobilier.eu/immobilier.php";
__________________
La connaissance ne sert que si elle est partagée.
http://ms2i.net
Mister Nono est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/12/2006, 17h02   #10
Inactif
 
Avatar de Kerod
 
Inscription : septembre 2004
Messages : 11 753
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 11 753
Points : 14 585
Points : 14 585
Un exemple qui fonctionne:
Code :
1
2
3
4
5
6
7
<?php
$page = "<a href='http://www.jade-immobilier.eu/immobilier-FR.php' > et ".'document.forms[0].action = "http://www.jade-immobilier.eu/immobilier.php"'; 
preg_match_all("#http:\/\/(.*)\.php#Usi", $page, $regs);
 
 for($i = 0; $i < count($regs[0]); $i++)
     echo $regs[1][$i]."<br/>";
?>
Kerod est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/12/2006, 20h40   #11
Membre Expert
 
Inscription : septembre 2002
Messages : 1 638
Détails du profil
Informations personnelles :
Âge : 48
Localisation : France, Hérault (Languedoc Roussillon)

Informations forums :
Inscription : septembre 2002
Messages : 1 638
Points : 1 000
Points : 1 000
Merci Kerod : je vais essayer dès demain.
__________________
La connaissance ne sert que si elle est partagée.
http://ms2i.net
Mister Nono est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h18.


 
 
 
 
Partenaires

Hébergement Web