Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2006
    Messaggi
    18

    Problemi con str_replace

    Ciao a tutti, finalmente sono riuscito a fare uno script che mi trovi delle parola all'interno di un file di testo e me le stampi a video!!!!
    Volevo però ripulire i campi trovati con la funzione in oggetto ma inserendo:
    $string = str_replace("CIAO", "TEST", $buffer);
    lo script mi ripropone tutto il file a video..... come posso fare????
    <?php
    // apro il file in lettura
    $identificatore=fopen ("test.txt", "r");

    // testo da trovare all'interno del file
    $host="hostname";
    $msg="msg";
    $date="date";
    $risultato="$host|$msg|$date";
    $counter=0;

    // eseguo il ciclo fino alla fine del file
    while (!feof ($identificatore)){

    // incremento il $counter di una unità
    $counter ++;

    // registro nella variabile $buffer il contenuto della linea
    $buffer=fgets($identificatore, 4096);

    // controllo con eregi se all'interno di $buffer c'è il testo che sto cercando
    // se l'esito è positivo stampo a video il suo contenuto
    if (ereg($risultato, $buffer))

    $string = str_replace("CIAO", "TEST", $buffer);


    echo "<table border=1><td>$buffer</td></table>";

    }

    // chiudo il file
    fclose ($identificatore);
    ?>

  2. #2
    se ho ben capito, quello che vuoi fare tu è stampare la frase dopo che hai cambiato "CIAO" con "TEST" ? se è cosi allora devi cambiare questo pezzettino
    Codice PHP:
    #cambia la variabile $string con $buffer
    $string str_replace("CIAO""TEST"$buffer);

    #oppure stampa $string invece di buffer
    echo "<table border=1><td>$buffer</td></table>"
    non puoi mettere il testo formattato in una variabile, stamparne un'altra e volere il testo formattato!
    spero di aver capito e di aver risolto il tuo problema

    ciau
    Perchè essere stupidi non è una menomazione ma un diritto di tutti!!!

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2006
    Messaggi
    18
    ho provato cosi!!!

    <?php
    // apro il file in lettura
    $identificatore=fopen ("test.txt", "r");

    // testo da trovare all'interno del file
    $host="hostname";
    $msg="msg";
    $date="date";
    $risultato="$host|$msg|$date";
    $counter=0;

    // eseguo il ciclo fino alla fine del file
    while (!feof ($identificatore)){

    // incremento il $counter di una unità
    $counter ++;

    // registro nella variabile $buffer il contenuto della linea
    $buffer=fgets($identificatore, 4096);

    // controllo con eregi se all'interno di $buffer c'è il testo che sto cercando
    // se l'esito è positivo stampo a video il suo contenuto
    if (ereg($risultato, $buffer))

    $string = str_replace("CIAO", "TEST", $buffer);


    echo "$string";

    }

    // chiudo il file
    fclose ($identificatore);
    ?>
    file di testo

    msg="errore nel file di log";
    hostname="ensv0rgx";
    date="Mar 04 09:43:09 2008";
    risultato dell'echo
    msg="errore nel file di log"; ="ensv0rgx"; date="Mar 04 09:43:09 2008"; date="Mar 04 09:43:09 2008"; date="Mar 04 09:43:09 2008"; date="Mar 04 09:43:09 2008";
    Ora il discorso è che sono riuscito a cambiare la parola 'hostname' con un blank...
    ma il campo data me lo scrive tre volte e più (se cancello la riga)
    $string = str_replace("hostname", " ", $buffer);
    tutto rifunziona alla perfezione!! da cosa dipende
    Scusa ma all'inizio del post ho inserito dei termini fittizzi (CIAO / TEST) ora ho usato quello che realmente mi occorre

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.