• User Attivo

    Ricerca su file.txt con php

    Salve ragazzi
    Devo scrivere annunci su file.txt, poi dovrei cercarli e stamparli a video quando inserisco parole chiave nel form di ricerca annunci;
    in effetti si tratta di cercare il testo compreso tra i simboli "|" testo da stampare "|" (se la keyword e' "testo" mi deve stampare "testo da stampare")

    e' una cosa semplice potete aiutarmi?

    Grazie


  • User Attivo

    Potresti fare una cosa di questo tipo:

     Apri file in lettura
       Leggi riga
          Fai un explode sul carattere "|"
          fai la ricerca nella stringa per ogni campo 
             se trovi la stringa
                 stampa il campo
        ripeti finchè non sono esaurite tutte le righe
    
    

    Se è quella sopra la logica che vuoi per il tuo script, prova a tradurre le parti che sai per le altre sistemiamo insieme.

    :ciauz:


  • User Attivo

    Grazie , ma questo vale anche se il numero degli annunci e' illimitato?
    ovvero in questo file ci sono illimitati annunci tutti delimitati tra due "|", a me serve quello che contiene la parola chiave.

    Spero di essermi spiegato
    grazie ancora


  • User Attivo

    Ciao,

    Pensavo ci fosse una divisione per righe, bene se così non è, siccome devi sempre leggerti tutto il file per trovare quello che cerchi, potresti utilizzare un soluzione di questo tipo:

    Fare un explode limitato, controllare e tornare a cercare.

    Sotto trovi un esempio di come limitare l'explode.

    [PHP]$someWords = "Please don't blow me to pieces.";

    $wordChunks = explode(" ", $someWords);
    for($i = 0; $i < count($wordChunks); $i++){
    echo "Piece $i = $wordChunks* <br />";
    }

    $wordChunksLimited = explode(" ", $someWords, 4);
    for($i = 0; $i < count($wordChunksLimited); $i++){
    echo "Limited Piece $i = $wordChunksLimited* <br />";
    }[/PHP]

    dai un occhiata a questo link anche:
    http://www.tizag.com/phpT/php-string-explode.php

    Con file molto lunghi diventa poco performante, per ora è l'unica soluzione che mi viene.

    Fammi sapere se risolvi..

    :ciauz:


  • User Attivo

    Thank You!!!
    ti faccio sapere