Visualizzazione risultati 1 fino 7 di 7

Discussione: Devo usare preg_replace ma non so come fare

  1. #1
    Guest

    Exclamation Devo usare preg_replace ma non so come fare

    Ciao a tutti,
    partendo dal titolo io so usare preg_replace ma questo è un caso particolare:

    Allora io ho una stringa del tipo

    come_ti_chiami = "tuonome";
    tuo_cognome = "tuocognome";

    Il mio problema è che devo cercare le stringhe sopra e sostituirle, il problema e che le parole scritte in rosso non sono fisse ma cambiano ogni volta... Perciò mi è impossibile cercare la stringa e modificarla!

    Come posso fare? Non mi rimandate su php.net che vengo da li e non ho capito come fare nel mio caso!

    Edit: Scusate ma ho dei problemi con la tastiera alcuni tasti non fungono come la barra spaiatrice (batterie scariche)
    Ultima modifica di superproxy : 26-07-2009 alle ore 17.22.38

  2. #2
    programmazioned non è connesso Utente attivo
    Data registrazione
    25-03-2008
    Messaggi
    440

    Predefinito

    Il mio problema è che devo cercare le stringhe sopra e sostituirle, le parole non sono fisse ma cambiano ogni volta...Perciò mi è impossibile cercare la stringa e modificarla!
    io so usare preg_replace ma questo è un caso particolare
    Non è affatto un caso particolare, anzi.
    Preg_replace e le espressioni regolari in genere servono proprio per problemi come questo, dove è richiesto il trattamento di stringhe non determinate ma determinabili attraverso set di metacaratteri.
    Btw: visto che dici di essere in grado di usare questa funzione, ma dimostri di non conoscere le espressioni regolari, mi sorge il dubbio che tu l'abbia sfruttata inutilmente altre volte. Conosci str_replace o strtr?

    L'espressione che ti serve, comunque, è relativamente semplice; se l'inglese è un problema puoi farcela anche con una guida basilare in italiano.
    Dopo i tentativi necessari, se ancora non risolvi, mostraci quella che ti sembra essere la soluzione più plausibile e vedremo di esaminarla insieme ;)

    Ciao!

  3. #3
    Guest

    Predefinito

    Quando la usavo altre volte, non dovevo fare nulla di speciale... tipo
    Codice PHP:
    $rimuovo_parolacce = preg_replace("culo", "c*lo", $parolacce_rimosse);
    il mio problema è che vedendo gli esempi con 100.000 tags usati mi confondevo e non ci capico una mazza!

    Non so se sia giusto, ancora non provo ma ho fatto così:

    Codice PHP:
    $nome = preg_replace("/come_ti_chiami\s+=\s+\"\d+\";/", "come_ti_chiami = \"$nuovo_nome\";", $nome );
    PS: Le altre funzioni da te nominate le conosco ma le ho usate raramente (tipo strpos)

    EDIT: E non ho problemi con l'inglese visto che ho sempre avuto 9 in pagella! ;-) Ho tradotto anche qualche applicazione per Ubuntu su Launchpad ;-)

    Ciao alla prossima :-P
    Ultima modifica di superproxy : 26-07-2009 alle ore 18.49.27

  4. #4
    programmazioned non è connesso Utente attivo
    Data registrazione
    25-03-2008
    Messaggi
    440

    Predefinito

    Quando la usavo altre volte, non dovevo fare nulla di speciale... tipo
    [omissis]
    Come pensavo.
    Usare preg_replace in quel modo è superfluo.
    Decisamente migliore per velocità e prestazioni:
    Codice PHP:
    $testo = str_replace('parolaccia', 'p********a', $testo);
    Se, come nel caso sopra, hai più stringhe da sostituire, puoi anche usare un array associativo con strtr:
    Codice PHP:
    $testo = strtr($testo, array('parolaccia'=>'p********a') );
    PS: Le altre funzioni da te nominate le conosco ma le ho usate raramente (tipo strpos)
    Non ho mai nominato strpos :S

    Per l'espressione regolare direi che ci siamo quasi.
    Ricorda però che \d equivale a [0-9].
    Puoi effettuare con un'unica espressione regolare la sostituzione di nome e cognome, tenendo conto che le due righe sono separate da (\r)\n.

    Ciao!
    Ultima modifica di programmazioned : 26-07-2009 alle ore 19.13.51

  5. #5
    Guest

    Predefinito

    Ciao,
    grazie per le risposte e i suggerimenti, che mi saranno molto utili!

    Visto che non me li ricordo bene, conosci qualche link dove posso trovare qualche spiegazione utile su quei tag? Va bene sia in Italiano che in Inglese! (io non sono riuscito a trovarli :-| )

    Comunque grazie ancora
    Ultima modifica di superproxy : 26-07-2009 alle ore 19.21.17

  6. #6
    programmazioned non è connesso Utente attivo
    Data registrazione
    25-03-2008
    Messaggi
    440

    Predefinito

    Ti ho linkato la documentazione sopra, meglio di quella... :)
    Ciao!

  7. #7
    Guest

    Predefinito

    Citazione Originalmente inviato da programmazioned Visualizza messaggio
    Ti ho linkato la documentazione sopra


    Un'elenco più preciso con tag e relative descrizioni non esiste? Altrimenti ci metto 3.000 anni a ripassarli tutti guardando e facendo quegli esempi

    Edit: Per tag intendo \s , \d etc...
    Ultima modifica di superproxy : 26-07-2009 alle ore 19.41.41

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •