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

    Eliminare righe vuote da file di testo

    ho un file di testo dal quale rimuovere del testo. ho usato preg_replace($pattern, "", $testo) sul contenuto esportato con fwrite e quindi fread. Il problema sono le righe vuote che rimangono, come le elimino?

    Grazie
    Promuovi il tuo business su PartnerTip

    Condividi informazioni sulle città del mondo su KooKooZa!

  2. #2
    Le righe vuote non sono realmente vuote...ci saranno i caratteri di "accapo", quello che devi fare è sostituire quei caratteri con niente.

    Attenzione però perchè in Windows gli accapo sono codificati in un modo ed in Unix/Linux in un altro.

    Prova:
    Codice PHP:
    $testo preg_replace("/^[\n|\r]/"""$testo
    Administrator of NAMDesign.Net

  3. #3
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Originariamente inviato da LeaderGL
    Le righe vuote non sono realmente vuote...ci saranno i caratteri di "accapo", quello che devi fare è sostituire quei caratteri con niente.

    Attenzione però perchè in Windows gli accapo sono codificati in un modo ed in Unix/Linux in un altro.

    Prova:
    Codice PHP:
    $testo preg_replace("/^[\n|\r]/"""$testo
    In questo modo elimini anche i ritorni a capo delle righe non vuote però, alla fine (se non legge una riga per volta) si ritroverebbe con tutto il testo su una riga

  4. #4
    beh si, io davo per scontato che o leggesse almeno una riga per volta oppure avesse già tutto il testo e da li togliere le righe vuote.

    anche se cmq quella regexp può migliorare, era un esempio.
    Administrator of NAMDesign.Net

  5. #5
    intanto grazie. Ora ho un altro problema, mi serve una funzione che mi cancelli una stringa esatta da un file, io ho fatto così:

    Codice PHP:
    $file fopen($file_path'r');
    $current_text fread($filefilesize($file_path));
    fclose($file);
    $text ereg_replace('([/.?])''\\\1'$text);
    $pattern "/($text)/";
    $new_text preg_replace($pattern""$current_text);
    $file fopen($file_path'w');
    fwrite($file$new_text);
    fclose($file); 
    ereg_replace mi serve perché devo cancellare HTML quindi ci sono tag ed url. inoltre il secondo argomento ha 3 backslash prima di '1'. sarà una sicurezza del forum x alcuni caratteri.
    Però non funziona bene...
    Promuovi il tuo business su PartnerTip

    Condividi informazioni sulle città del mondo su KooKooZa!

  6. #6
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Perché usi una volta ereg_replace e poi preg_replace? Usa sempre la seconda funzione, la prima da php 5.3.0 è stata deprecata.

  7. #7
    Prego il moderatore di eliminare questo post. Grazie
    Giorgio
    L'esperienza è il tipo di insegnante più difficile. Prima ti fa l'esame, e poi ti spiega la lezione. (Oscar Wilde)

  8. #8
    Qui due facili modi di eliminare le righe vuote da qualsiasi file di testo:
    - http://galileo2010.blogspot.it/2014/...a-file-di.html
    - http://galileo2010.blogspot.it/2014/...iasi-file.html
    Giorgio
    L'esperienza è il tipo di insegnante più difficile. Prima ti fa l'esame, e poi ti spiega la lezione. (Oscar Wilde)

  9. #9
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Penso che dopo 3 anni abbia risolto.

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.