Visualizzazione risultati 1 fino 19 di 19

Discussione: problema open txt

  1. #1
    Guest

    Predefinito problema open txt

    allora raga ho un problema e sto diventando matto:
    Devo confrontare una stringa con quelle contenute dal file txt se sono uguali mettere a 1 la variabile. Per fare ciò uso:

    $file = fopen("tai.txt","r+");
    while(!feof($file))
    {
    $riga = (fgets($file,255));
    // echo $riga; echo " = "; echo $indirizzo; echo "<br>";
    if ($riga == $indirizzo) {$trovato = 1; break 2;};

    }
    @fclose($file);


    Ma anche se $riga è uguale a $indirizzo non mi convalida l'if!
    Perchè??!!!??? sono sicuro che sono uguali!!!

    Grazie

  2. #2
    Guest

    Predefinito

    non ho ben capito il tuo problema, tu devi controllare se il valore del file tai.txt è uguale ad una stringa $stringa ??
    Se così fai con file_get_contents() ... ciaoo

  3. #3
    Guest

    Predefinito

    no il contrario nel file txt ci sono tante stringhe! devo controllare se $indirizzo è uguale a una di queste stringhe.

    il fatto è che dovrebbe funzionare ma non va....

    In pratica dice che AsDfjkdy3 è diverso da AsDfjkdy3 anche se sono identici : | non capisco perchè!

  4. #4
    Guest

    Predefinito

    Non ho letto attentamente lo script, ma prova ad usare trim() per tutte le stringhe.


    Ciaoooo!!!!

  5. #5
    Ospite Guest

    Predefinito

    Prova così:
    Codice PHP:
    <?
    if(strrchr(file_get_contents("tai.txt"),$indirizzo))
    $trovato=1;
    else
    $trovato=0;
    echo
    $trovato;
    ?>
    Però praticamente se il file tai.txt contiene "ciaomamma" sia il controllo su "ciao", che su "mamma", che su "ciaomamma", restituiranno TRUE.
    Se le stringhe nel file sono separate da uno spazio o da un altro eventuale delimitatore puoi fare così:
    Codice PHP:
    <?
    $stringhe
    =array();
    $s=explode(" ",file_get_contents("tai.txt")); // al posto di " " metti l'eventuale delimitatore
    foreach($s as $str){
    $stringhe[]=$str;
    }
    if(
    in_array($indirizzo,$stringhe))
    $trovato=1;
    else
    $trovato=0;
    ?>
    In questo viene verificata la presenza nel file della stringa.

  6. #6
    Guest

    Predefinito

    grazie mi sembra una valida alternativa però non conosco bene queste funzioni.

    Io devo controllare stringa per stringa il contenuto del txt.
    quindi devo scriverlo nel ciclo? così intendo:

    Codice PHP:
    $file = fopen("tai.txt","r+");
    while(!
    feof($file))
    {
    if(
    strrchr(file_get_contents("tai.txt"),$indirizzo))
    $trovato=1;
    else
    $trovato=0;
    }
    @
    fclose($file);

    Oppure la funziona controlla stringa per stringa automaticamente? :) che sarebbe buono!
    Ultima modifica di Zabuza : 12-09-2007 alle ore 19.18.51

  7. #7
    Ospite Guest

    Predefinito

    Le stringhe nel file tai.txt in che formato sono (una per ogni riga, separate da uno spazio, oppure...??)?
    Dimmi questo così ti adatto lo script

  8. #8
    Guest

    Predefinito

    una per ogni riga

  9. #9
    Ospite Guest

    Predefinito

    Ah.
    Allora è ancora più semplice :)

    Codice PHP:
    <?php
    if(in_array(trim($indirizzo),file("tai.txt")))
    $trovato=1; // il valore di $indirizzo è già presente in tai.txt
    else
    $trovato=0; // il valore di $indirizzo non è presente in tai.txt
    ?>
    Lo script verifica se il valore di $indirizzo è già presente o meno in una delle righe di tai.txt, se è presente $trovato vale 1,altrimenti vale 0

    Funzioni php interessate: file(), in_array(), trim()

  10. #10
    Guest

    Predefinito

    grazie mille mi hai salvato dalla pazzia!

    EDIT:
    uffa non capisco secondo me sto coso da i numeri....

    perchè non mi trova in ogni caso il file... dice sempre che trovato è = 0
    anche se la stringa c'è eccome :\
    Ultima modifica di seneca : 12-09-2007 alle ore 23.02.02

  11. #11
    Ospite Guest

    Predefinito

    Ho aggiornato il post 9, avevo fatto un errore di battitura :P
    Ora dovrebbe funzionare...

  12. #12
    Guest

    Predefinito

    mi dà cmq lo stesso problema.... secondo lui nel txt non c'è la stringa : |

  13. #13
    Ospite Guest

    Predefinito

    Sei sicuro/a di aver impostato il database correttamente?
    Perchè a me lo script funziona perfettamente anche qui su AlterVista...
    Magari posta il file txt, lo script in uso per intero e gli esiti dei vari test che hai effettuato ;)

  14. #14
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    La funzione trim deve essere eseguita sulla riga del file e non sull'indirizzo passato perché è nel file che viene aggiunto il carattere "a capo" alla fine di ogni riga.
    Codice PHP:
    <?php
    $righe
    =file("tai.txt");
    $trovato=false;
    for(
    $i=0;$i<count($righe);$i++)
    if (
    $indirizzo==trim($righe[$i])) {
    $trovato=true;
    break;
    }
    ?>
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  15. #15
    Guest

    Predefinito

    perfettamente funzionante grazie funcool!

    Adesso però ho un altro problema, ho bisogno di cancellare la riga trovata... che comando posso usare?

    cioè potrei farlo trascrivendo riga per riga lasciando fuori quella uguale però mi sembra lungo : |
    Non c'è un comando cancella la riga x ?
    Ultima modifica di Zabuza : 13-09-2007 alle ore 17.49.11

  16. #16
    Ospite Guest

    Predefinito

    Codice PHP:
    <?php
    $righe
    =file("tai.txt");
    $trovato=false;
    for(
    $i=0;$i<count($righe);$i++)
    if (
    $indirizzo==trim($righe[$i])) {
    $trovato=true;
    $ass=$i;
    break;
    }
    if(
    $trovato)
    $righe[$ass]=NULL;
    fwrite(fopen("tai.txt","w+"),implode("",$righe));
    ?>

  17. #17
    Guest

    Predefinito

    grazie mille!

    Non sòperchè ma non mi va... non la cancella
    Ultima modifica di Zabuza : 13-09-2007 alle ore 19.00.40

  18. #18
    Ospite Guest

    Predefinito

    Ho aggiornato il post 16, ora sono certo che va

  19. #19
    Guest

    Predefinito

    adesso funziona perfettamente grazie

Regole di scrittura

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