Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di Alpha!
    Registrato dal
    May 2005
    Messaggi
    68

    Cancellare stringa multipa in un file

    Salute,

    ho creato un codice in PHP per rimuovere le stringhe multiple all'interno di un file, con il solo problema che la stringa me la rimuove completamente ed invece vorrei lasciarne almeno una.
    Non ho preferenze sull'ordine delle stringhe, ma siccome dovrà lavorare su un file contenente 640'000 elementi, vorrei evitare script scritti senza testa che per esempio hanno un fopen dentro un ciclo (che rallentano l'esecuzione e basta)

    Pensavo di appogiarmi su un db sql, però se possibile vorrei lasciarla come ultima spiaggia per una questione di comodità!

    Anticipatamente ringrazio!

    Il codice PHP
    Codice PHP:
    <?php
        $FILE    
    "test.txt";
        
    $FSTFILE file($FILE);
        
    $STRING;
        
        
    // Prendo la STRINGA da cercare
        
    for( $k=0$k<=count($FSTFILE); $k++ )
        {
            
    // Cerco la STTRINGA su OGNI LINEA del file
            
    for( $i=0$i<=count($FSTFILE); $i++ )
            {
                if( 
    preg_match("/".$FSTFILE[$k]."/"$FSTFILE[$i]) )
                {
                    
    $STRING .= "";
                    break;
                }
                else
                {
                    
    $STRING .= $FSTFILE[$k];
                    break;
                }
            }
        }
        
        
    $FSTREAM fopen($FILE"w");
        
    fwrite($FSTREAM$STRING);
        
    fclose($FSTREAM);
    ?>

    Il file test.txt è strutturato in questo modo:
    codice:
    gianluca
    sandro
    gianluca
    piffero
    salamandro

    PS. È odioso chiedere aiuto per cavolate di questo livello, ma la stanchezza mi ha reso veramente rincoglionito

  2. #2
    Ciao,
    ho appena provato così su un piccolo file e funziona, l'unico dubbio che ho è che con un file molto grosso possa richiedere troppa memoria:

    Codice PHP:
    <?php
        $FILE    
    "test.txt";
        
    $FSTFILE file($FILE);
        
    $FILEOUT array_unique ($FSTFILE);
        
    file_put_contents ("test2.txt"$FILEOUT);
    ?>
    Devi solo fare attenzione che l'ultimo elemento del file sia seguito da un ritorno a capo, altrimenti verrà considerato diverso dagli altri e su di lui il test di unicità fatto dalla array_unique non funzionerà.

    La democrazia rappresentativa ha fatto il suo tempo, è ora di passare alla democrazia diretta.
    www.beppegrillo.it

  3. #3
    Utente di HTML.it L'avatar di Alpha!
    Registrato dal
    May 2005
    Messaggi
    68
    Originariamente inviato da NonCeLaFaccio+
    Ciao,
    ho appena provato così su un piccolo file e funziona, l'unico dubbio che ho è che con un file molto grosso possa richiedere troppa memoria:

    Codice PHP:
    <?php
        $FILE    
    "test.txt";
        
    $FSTFILE file($FILE);
        
    $FILEOUT array_unique ($FSTFILE);
        
    file_put_contents ("test2.txt"$FILEOUT);
    ?>
    Devi solo prestare attenzione a che l'ultimo elemento del file sia seguito da un ritorno a capo, altrimenti verrà considerato diverso dagli altri e su di lui il test di unicità fatto dalla array_unique non funzionerà.

    Grazie mille gentilissimo, a questo punto mi sono arreso percui va bene anche qualcosa che occupi anche 2 giorni di lavoro per lo script :P

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.