Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Alternativa a eregi_replace

    Salve a tutti,
    ho ripreso in mano una vecchia classe per gestire dei template che utilizzava appunto eregi_replace
    Codice PHP:
    $this -> template eregi_replace("{" $tag "}"$da_sostituire$this -> testo_in_cui_cercare); 
    Ora però, installando la 5.3 mi viene segnalato che eregi_replace è deprecato e dalla versione 6 verrà tolto.Che alternativa potrei utilizzare per fare qualcosa di almeno un pochino "serio"?
    Ho provato con preg_replace ma non riesco ad adattarlo al mio esempio..
    Grazie mille in anticipo

  2. #2

  3. #3
    Ti ringrazio per la risposta, ma sono impedito..
    ..e ignorante con le regexp!
    Dato il seguente esempio:
    Codice PHP:
    $text "
    <h1>Il titolo e': {text}</h>\n


    {hello}</p>
    "
    ;

    $text eregi_replace("{text}""Ciao mondo"$text);
    $text eregi_replace("{hello}""hello world"$text);
    echo 
    $text
    ottengo
    codice:
    Il titolo e': Ciao mondo
    hello world
    Ma usando preg_replace
    Codice PHP:
    $text "
    <h1>Il titolo e': {text}</h>\n


    {hello}</p>
    "
    ;

    $text preg_replace("{text}""Ciao mondo"$text);
    $text preg_replace("{hello}""hello world"$text);
    echo 
    $text
    Il risultato e'
    codice:
    Il titolo e': {Ciao mondo}
    {hello world}
    Cosa sbaglio?

  4. #4
    Per iniziare, per l'esempio che hai postato è inutile utilizzare preg_replace(), ma è sufficiente utilizzare str_replace().

    Poi, le PCRE richiedono dei delimitatori non alfabetici. Nel tuo caso, vengono interpretati i {}. Inoltre {} sono meta caratteri in PCRE per cui sarebbe opportuno NON utilizzarli come delimitatori.

    Codice PHP:
    <?php 
    $text 
    "
    <h1>Il titolo e': {text}</h>\n


    {hello}</p>
    "
    ;

    $text preg_replace("#\\{text\\}#""Ciao mondo"$text);
    $text preg_replace("#\\{hello\\}#""hello world"$text);
    echo 
    $text;

    ?>

  5. #5
    Ah perfetto, grazie mille, mi documenterò allora!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.