Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Webprogrammeren & scripting

PHP: Warning: REG_EPAREN ???

Gooly
7 antwoorden
  • Deze melding verschijnt er na het invullen van mijn zelfgemaakte gastenboek. Ik heb een PHP script dat de invoer van een HTML form gebruikt om de aantekening in het gastenboek te zetten.
    Dit werkte allemaal perfect, todat ik met reg_eparen bepaalde text frases naar afbeeldingen wilde omzetten, zodat bijv. :smile: een gifje van een echte smiley word.

    Ik heb inmiddels ontdekt dat hij de foutmelding alleen geeft als er een "haakje sluiten teken" in zit, dus een ) teken, dit komt voor bij een frowny : ( De regels die hij in de waarschuwing / foutmelding noemt zijn steeds de regels die "haakjes sluiten" bevatten. Verwijder ik deze regels, dan werkt het perfect, dus ook de overige regels waar reg_eparen in voorkomt werken goed. Maar ja, de bezoekers van mijn site hebben soms ook wel eens behoefte om een frowny in te typen…

    Iemand een idee hoe dit komt?

    Hier is de volledige PHP foutmelding:
    [code:1:e6ef0d6284]
    Warning: REG_EPAREN in web/gastenboek/voegtoe.php3 on line 20

    Warning: Cannot add header information - headers already sent by (output started at /home/sites/site94/web/gastenboek/voegtoe.php3:20) in /home/sites/site94/web/gastenboek/voegtoe.php3 on line 41
    [/code:1:e6ef0d6284]
    En hier heb je de regels 20 en 41 uit het PHP script:
    [code:1:e6ef0d6284]
    $reactie = ereg_replace( ":(", "<IMG SRC=gbookimg/smsmile.gif>", $reactie);

    header("location: bedankt.php?naam=$naam");
    ?>
    [/code:1:e6ef0d6284]
  • Je moet de ( escapen, met ( dus:

    $reactie = ereg_replace( ":(", "<IMG SRC=gbookimg/smsmile.gif>", $reactie);
  • Yep, dat werkt prima, bedankt weer wat geleerd :smile: Edoch volgende probleen: Hij herkent geen twee haakjes achter elkaar, los van het feit of dit haakjes openen of haakjes sluiten zijn. van : ) maakt hij inderdaad :smile: maar van : )) maakt hij :smile: ) Maar dan andere smileys haha) Hoe kan ik zorgen dat hij het tweede haakje niet negeerd?

    _________________
    My name is Bond! Consumenten Bond!

    [ Dit bericht is bewerkt door: Gooly op 2002-04-25 11:16 ]
  • Gewoon eerst de :)) vervangen en daarna pas de :).
  • En weer wat geleerd. Het werkt.
    Ook wel logisch trouwens. Bedankt :smile:
  • 2 tips:

    1. preg_replace is sneller, maar dat even terzijde, als je ereg gewend ben kan ik me voorstellen dat het je weinig boeit…
    2. gebruik str_replace. In dit geval wil je tekens vervangen zonder wildcards of andere leuke regular expressions, gebruik str_replace dan gewoon, is vele malen sneller:


    $reactie = str_replace( ":(", "<IMG SRC=gbookimg/smsmile.gif>", $reactie);


    (haakje hoef je niet te escapen trouwens bij str_replace)
  • is preg_replace sneller dan ereg ??

    Ik heb het nooit getest, maar in principe is POSIX (ereg) sneller dan de backtracking die preg toepast.

    ___________________
    edit:

    Dat scheelt flink zeg! En ik altijd maar denken dat ik minder performance had omdat ik preg gebruik (komende van Perl). Maar inderdaad, in dit geval kun je beter str_replace, of zelfs explode gebruiken..

    [ Dit bericht is bewerkt door: Jurriaan R op 2002-04-26 11:01 ]

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.