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

    Regexp: selezionare spazi contigui

    Ciao a tutti,

    avrei bisogno di cercare in una stringa di testo tutte le occorrenze che presentano due o piu' spazi contigui e sostituirli con un solo spazio.

    Penso che il tutto si possa fare con una REgular Expression tramite la funzione ereg_replace, ma non ho dimestichezza con queste ultime, qualcuno che mi può dare una mano?

    Ciao e grazie.

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    $stringa = preg_replace('/[ ]{2,}/', ' ', $stringa);

  3. #3
    Grazie,
    funziona alla perfezione, e se volessi con una seconda istruzione togliere anche tutti i daccapo per tenere il testo tutto su una sola linea che dovrei sostituire?


  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    prova questa
    $stringa = str_replace("\r\n", " ", $stringa);

  5. #5
    funziona leggermente modificata così:

    $stringa = str_replace("\n", " ", $stringa);

    Grazie ancora.

  6. #6
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Sì, andrebbe modificata per andar bene sia sotto linux che windows, magari con un array delle varie combinazioni da sostituire.

  7. #7
    Io sto usando un server linux, quella che ho scritta io va bene solo su linux?
    Per windows invece bisogna mettere anceh \r ?
    Ho capito bene?

  8. #8
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Originariamente inviato da Visionario
    Io sto usando un server linux, quella che ho scritta io va bene solo su linux?
    Per windows invece bisogna mettere anceh \r ?
    Ho capito bene?
    L'avevo immaginato che eri sotto linux dalla tua risposta. Esatto, in windows ci vuole anche \r.

    Quindi

    $sost = array("\r\n","\n");

    $stringa = str_replace($sost," ",$stringa);

  9. #9


    Perfetto ho capito le distinzioni, grazie per l'aiuto, solo un ultimissima domanda io non sono molto pratico di php, ma si può anche usare str_replace al posto di array e cioè:

    $sost = str_replace("\r\n","\n");
    $stringa = str_replace($sost," ",$stringa);

    anzicchè:
    $sost = array("\r\n","\n");
    $stringa = str_replace($sost," ",$stringa);

    Ciao e grazie ancora

  10. #10
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Non che io sappia.

    str_replace richiede per forza 3 parametri

    $sost = str_replace("\r\n","\n"); questa da sicuramente errore.

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.