Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2016
    Messaggi
    39

    Sostituire una porzione di stringa

    Devo sostituire una porzione di stringa che è compresa tra 2 stringhe, con un'altra stringa.
    Il valore delle stringhe è sempre diverso...

    Esempio:
    $str = "Ciao a tutti il mio nome è Alessio e sono registrato da parecchi anni.";

    Vorrei prendere tutto ciò che è compreso tra "il mio nome" e "da parecchi" sostituirlo con questo "TestoSostituito" e aggiornare la variabile $str con la nuova stringa.

    Stampando la variabile dovrei quindi avere
    echo $str;
    "Ciao a tutti TestoSostituito anni."

    So che si dovrebbe poter fare con preg_replace ma proprio non capisco come, le espressioni regolari non mi entrano in testa.
    Qualcuno può aiutarmi?
    Ultima modifica di Johell; 07-01-2016 a 17:03

  2. #2
    Scusa in che senso il valore delle stringhe è sempre diverso?
    E' sempre diverso il valore intermedio ma fisse le stringhe "il mio nome" e "da parecchi anni."?
    In questo caso con
    codice:
    $pos1 = strpos($tuttalafrase, $daparecchianni)
    e
    codice:
    $pos2 = strpos($tuttalafrase, $ilmionome)
    recuperi le posizioni delle stringhe fisse.
    Successivamente con
    codice:
    substr($tuttalafrase,0,$pos1).$nuovotestodainserire.substr($tuttalafrase,$pos2,strlen($tuttalafrase))
    effettui l'insert

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2016
    Messaggi
    39
    Grazie 1000 era quello che mi serviva.
    Toglimi una curiosità, è possibile farlo anche con preg_replace?

  4. #4
    Non ho mai utilizzato quella funzione ma trattandosi di una funzione che effettua ricerca e sostituzione di espressioni regolari penso proprio di si.

  5. #5
    Codice PHP:
    <?php
    $str 
    "Ciao a tutti il mio nome è Alessio e sono registrato da parecchi anni.";
    $str =  preg_replace("/il mio nome [a-zA-Z è]+ da parecchi/""TestoSostituito"$str);
    echo 
    $str;
    ?>
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

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 © 2024 vBulletin Solutions, Inc. All rights reserved.