Visualizzazione dei risultati da 1 a 5 su 5

Discussione: php e file di testo

  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2008
    Messaggi
    29

    php e file di testo

    buon giorno.

    qualche esperto mi può mica dire come faccio a spostare una stringa dento un file di testo.

    io ho questo file formattato così

    [00:16:06.96] ••• Nut Corporation (Nut) starts turn
    [00:16:26.64] ••• Nut Corporation (Nut) fires Granata (5 sec, min bounce)
    [00:16:33.20] ••• Nut Corporation (Nut) ends turn; time used: 19.66 sec turn, 3.00 sec retreat
    [00:16:36.84] ••• Damage dealt: 5 to Giambel V Squad (wm`Sardus)

    avrei bisogno che la stringa:
    [00:16:36.84] ••• Damage dealt: 5 to Giambel V Squad (wm`Sardus)
    venga tagliata e copiata al termine della
    stringa:
    [00:16:26.64] ••• Nut Corporation (Nut) fires Granata (5 sec, min bounce)
    diviso da un trattino - oppure anche uno spazio

    questo per tutte le stringhe uguali presenti nel file.

    praticamente la stringa
    [00:16:36.84] ••• Damage dealt: 5 to Giambel V Squad (wm`Sardus)
    dovrebbe salire di una riga ed aggiungersi alla riga precedente.

    grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    225
    devi leggere tutto il file e memorizzarlo in una stringa o in un array (secondo quello che ti è più comodo), fare le modifiche che desideri e riscriverlo nuovamente nel file. Non c'è mezzo di manipolare direttamente un file sequenziale, se non con un append
    ciao
    sergio

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2008
    Messaggi
    29
    mhhh.... le modifiche dovrebbero essere fatte in automatico..cmq...


    ____________formattazione originale_____________________

    [00:16:06.96] ••• Nut Corporation (Nut) starts turn
    [00:16:26.64] ••• Nut Corporation (Nut) fires Granata (5 sec, min bounce)
    [00:16:33.20] ••• Nut Corporation (Nut) ends turn; time used: 19.66 sec turn, 3.00 sec
    [00:16:36.84] ••• Damage dealt: 5 to Giambel V Squad (wm`Sardus)

    __________________________________________________ ___


    invece se volessi aggiungere alla stringa
    [00:16:36.84] ••• Damage dealt: 5 to Giambel V Squad (wm`Sardus)
    il nome che compare nella riga precedente..
    ad esempio in questo caso Nut Corporation (Nut)

    e farla diventare così:
    [00:16:36.84] ••• Nut Corporation (Nut) Damage dealt: 5 to Giambel V Squad (wm`Sardus)

    poi... andrebbe fatto per tutte le righe del file di testo

  4. #4
    Quando iniziai a costruire il mio primo sito web non disponevo di db mysql e quindi fui costretto ad utilizzare db testuali e problemi di questo genere li ho ben presenti.

    Per esperienza posso dire che i db testuali se utilizzati per contenere pochi dati non soggetti a frequenti modifiche possono svolgere un egregio ruolo. Ma qualora cercherai di eliminare singole righe o, peggio ancora, modificare singole righe, o ancora peggio invertire singole righe, la loro manipolazione attraverso uno script diventa estremamente complessa.

    Quindi quello che vuoi fare è possibile ma estremamente complesso. A questo punto non conviene più utilizzare un db testuale.

    In ogni caso le funzioni principale da conoscere perfettamente sono:
    - file
    - explode
    - fopen, fread, fwrite, fclose
    - str_replace

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2008
    Messaggi
    29
    Ciao....
    Io ho provato così:

    $accor="•••"; //caratteri di riferimento

    foreach ($values as $key => $inizio){
    if (stristr($inizio, $accor)){


    $text = $inizio;
    $oldWord = "Damage";

    // il nome del team... in questo caso Nut
    $newWord = $tname1;

    //replico la parola damage con il tname1 (Nut)

    $text = str_replace($oldWord , $newWord , $text);


    $nochat.=$text."
    ";

    }}

    echo $nochat;

    fondamentalmente ha funzionato..però il problema è che a tutte le righe mi mette il nome di $tname1 e perciò non va bene perchè ci possono essere almeno 6 nomi con le relative righe .

    forse per farvi capire meglio metto un pezzo del file :

    [00:16:06.96] ••• Nut Corporation (Nut) starts turn
    [00:16:26.64] ••• Nut Corporation (Nut) fires Granata (5 sec, min bounce)
    [00:16:33.20] ••• Nut Corporation (Nut) ends turn; time used: 19.66 sec turn, 3.00 sec retreat
    [00:16:36.84] ••• Damage dealt: 5 to Giambel V Squad (wm`Sardus)

    [00:16:06.96] ••• Atr0x (Atr0x) starts turn
    [00:16:26.64] ••• Atr0x (Atr0x) fires Granata (5 sec, min bounce)
    [00:16:33.20] ••• Atr0x (Atr0x) ends turn; time used: 19.66 sec turn, 3.00 sec retreat
    [00:16:36.84] ••• Damage dealt: 5 to Nut Corporation (Nut)

    come potete vedere i nome cambiano....

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.