Expressions régulières php pour traiter un texte

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par Eroan, 26 Avril 2007.

  1. Eroan
    Eroan WRInaute discret
    Inscrit:
    28 Mars 2007
    Messages:
    62
    J'aime reçus:
    0
    Bonjour à tous,

    je fais appel à la communauté WRI car j'ai une problématique que, malgré mes recherches sur internet, je n'ai pas réussi à solutionner.

    Voilà donc :

    J'ai un site en php/mysql que j'ai doté d'un système de cache. Les pages générées pour le cache sont enregistrées dans un fichier texte, disons archive.txt pour l'exemple. Attention, il s'agit d'un fichier texte mais qui contient du php. On retrouve dans ce fichier les variables de ma page, sous la forme suivante :

    Code:
    <?
    $titre = "";
    $entete = "";
    $milieu = "";
    $liens = "";
    ?>
    Je possède sur mon site 3 bases de données : une avec des marques, une avec des noms de produits et une avec d'autres marques.

    Je souhaite mettre en place la solution suivante : un cron ouvre mes fichiers d'archives et met des liens vers les marques et produits dans mon contenu ($milieu) avant de l'enregistrer. J'aurai ainsi des liens vers les marques et produits sur tous mes contenus.

    J'ai réussi à tout faire, sauf l'expression régulière qui va me permettre d'ajouter les liens. Cette expression régulière doit rechercher ma variable $valeurcherchee dans $milieu du fichier archive.txt pour la remplacer par <a href="$lienvaleurcherchee">$valeurcherchee</a>, avec les contraintes suivantes :

    - doit remplacer uniquement entre $milieu = " et ";
    - ne doit pas prendre en compte les textes entre les balises <a>, <b>, <strong>, <h*>, <caption> et <span>
    - ne doit pas prendre en compte le texte dans les balises, soit entre < et >

    Voilà, j'ai ces 3 contraintes...

    en gros l'expression régulière devrait, d'après ce que j'ai compris, ressembler à ça :

    Code:
    milieu = \\"[.*]$valeurcherchee[.*]";
    seulement le souci c'est que les [.*] doivent permettre d'exclure les textes entre les balises susmentionnées...

    J'espère avoir été clair et obtenir de l'aide...

    Merci d'avance à tous et longue vie à WRI ;)
     
  2. julienr
    julienr WRInaute impliqué
    Inscrit:
    5 Août 2003
    Messages:
    939
    J'aime reçus:
    2
    salut,
    le plus simple est de le faire en plusieurs étapes et d'utiliser dans un premier temps un preg_replace_callback()

    exemple :

    Code:
    preg_replace_callback( "|.*resume = \"(.*)\".*|", $callback, $archive );
    
    function callback() {
    
    }
    
    ainsi tanquillement en php tu peux rechercher et remplacer les liens
     
  3. Eroan
    Eroan WRInaute discret
    Inscrit:
    28 Mars 2007
    Messages:
    62
    J'aime reçus:
    0
    Merci,

    en fait ce code va me permettre de retrouver le code entre mon $milieu = \" et "; c'est bien ça?

    Mais cette solution est peu pratique car elle va m'obliger à faire de nombreux appels à cette fonction, or j'ai environ 200 mots à rechercher :

    cette fonction sera appelée dans un foreach listant mon tableau de 200 valeurs. Avec une expreg standard ce serait plus simple...

    Personne ne voit comment faire? Je vais regarder avec preg_replace_callback pour l'instant en tous cas!

    Merci.
     
Chargement...
Similar Threads - Expressions régulières php Forum Date
PHP Expressions Régulières ! Modifier plusieurs occurences Développement d'un site Web ou d'une appli mobile 5 Août 2015
PHP - preg_match_all() et expressions regulieres Développement d'un site Web ou d'une appli mobile 24 Août 2007
Question expressions régulières preg_match_all PHP Développement d'un site Web ou d'une appli mobile 19 Août 2007
[Résolu] expressions régulières et PHP Développement d'un site Web ou d'une appli mobile 5 Avril 2007
[PHP Expressions régulières] Interdire chaîne Développement d'un site Web ou d'une appli mobile 19 Janvier 2006
[PHP] Expressions régulières, récupération de données Développement d'un site Web ou d'une appli mobile 9 Janvier 2006
Idées d'expressions régulières utiles en SEO Référencement Google 17 Mai 2021
Expressions régulières début et fin de mot Développement d'un site Web ou d'une appli mobile 11 Août 2012
Expressions régulières et filtre Google Analytics Google Analytics 18 Avril 2012
Expressions régulières entonnoir de conversion Google Analytics 3 Février 2012
expressions régulieres et fichier robots Débuter en référencement 27 Mai 2011
Expressions Régulières ! J'ai une question Développement d'un site Web ou d'une appli mobile 12 Avril 2011
Redirection Htaccess Expressions régulières Débuter en référencement 17 Août 2010
Expressions régulières - interdire un caractère Développement d'un site Web ou d'une appli mobile 22 Juin 2010
Pour connaisseurs en expressions regulières (regex) Développement d'un site Web ou d'une appli mobile 27 Mai 2010
url rewriting, syntaxe pour les expressions régulières... URL Rewriting et .htaccess 5 Octobre 2008
[Résolu] Problème Expressions régulières Développement d'un site Web ou d'une appli mobile 29 Octobre 2007
besoin d'un conseil sur les expressions regulières URL Rewriting et .htaccess 30 Mai 2007
Expressions regulieres mask Développement d'un site Web ou d'une appli mobile 20 Octobre 2006
option i dans les expressions régulières => alternative ? Développement d'un site Web ou d'une appli mobile 2 Octobre 2006