IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

preg_replace limitation aléatoire


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    DDD
    Inscrit en
    Février 2003
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : DDD

    Informations forums :
    Inscription : Février 2003
    Messages : 55
    Par défaut preg_replace limitation aléatoire
    Bonsoir,

    Voici un bout de code (exemple) qui me pose problème.

    Si j'augmente la taille (le contenu) de la variable $contents, le navigateur (IE ou FF ou Opera ou...) n'arrive plus à afficher la page.

    Ce qui est surprenant, c'est que cela semble dépendre du couple PHP/APACHE.
    Sur mon serveur de dév (PHP 5.2.12 / Apache 2.2.14) cela pose problème alors que sur mon serveur de "prod" (PHP 5.2.8 / Apache 2.2.12), cela ne pose pas de pb (sans doute un paramétrage différent)

    Si quelqu'un pouvait m'aider (ne tenez pas compte de ce que fait ce bout de code qui n'est qu'un exemple tiré du code réel)... Pour tester, amusez-vous à ajouter des caractères dans la chaine $contents et normalement cela devrait poser problème.

    Merci d'avance pour votre aide.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    <?php
    function mon_callback($capture){ 
     
    	global $mot;
    	if (strtolower($capture[2]) != '</a>'){ 
    		return preg_replace('#\b'.$mot.'\b#i', '<a href="">$0</a>', $capture[1]).$capture[2]; 
    	} else { 
    		return $capture[1].$capture[2]; 
    	}
     
    } 
     
    $contents="<p>
    abc 567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
    abc 567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
    1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
    1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
    1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
    1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
    1234567890123456789012345678901234567890123456789012345678901234567
    </p>";
     
    $mot='abc';
     
     
    echo preg_replace_callback('#((?:(?!<[/a-z]).)*)([^>]*>|$)#si', "mon_callback", $contents); 
     
    ?>

  2. #2
    Membre chevronné
    Avatar de hornetbzz
    Homme Profil pro
    Directeur commercial
    Inscrit en
    Octobre 2009
    Messages
    482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France

    Informations professionnelles :
    Activité : Directeur commercial

    Informations forums :
    Inscription : Octobre 2009
    Messages : 482
    Par défaut
    Salut,

    ta page n'affiche rien car tu n'as pas le tps d'aller jusqu'au callback, car ça ne matche pas.

    Si je mets tel quel $content dans mon testeur de regex perso (avec ta regex bien sûr), mon script me dit gentiment que ça ne matche pas. (pas besoin d'ajouter plus de caracteres)

    Si je coupe seulement le dernier "</p>" de $content, par contre, là ça matche.

    N'y aurait-il pas une petite coquille ds ta regex ?

    EDIT: testé sur serveur Apache2.0 /PHP Version 5.2.9, le tout sous Linux 2.6.24 (j'ai pas de wamp bidule ou easy truc, enfin si mais j'utilise pas)

Discussions similaires

  1. Réponses: 3
    Dernier message: 15/03/2012, 22h52
  2. limitation texte preg_replace
    Par omelhor dans le forum Langage
    Réponses: 4
    Dernier message: 18/01/2011, 21h02
  3. requete aléatoire + LIMIT, possible ?
    Par evevev dans le forum Débuter
    Réponses: 5
    Dernier message: 25/11/2010, 07h49
  4. Selection aléatoire et limité par clé secondaire
    Par Shintarô dans le forum Requêtes
    Réponses: 1
    Dernier message: 16/06/2008, 15h13
  5. [Comparatifs] Limites nombres tables et quantité de données
    Par benj63 dans le forum Décisions SGBD
    Réponses: 7
    Dernier message: 13/06/2002, 21h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo