• User Attivo

    Ok ragazzi ho trovato la soluzione, nelle mie ricerche purtroppo non ho trovato nulla poi ripensando alla funzione suddetta del C/C# ho trovato la soluzione che vi posto:
    [PHP]
    <?php

    $fp = fopen('somefile.txt');
    // Lettura di qualche dato
    $data = fgets($fp, 4096);
    // si torna ad inizio file
    // come rewind($fp);
    fseek($fp, 0);
    ?>
    [/PHP]
    Allora premetto che ora mi ci metto e lo proverò per ora lo dò per buono eheh 😄


  • User Attivo

    Allora ragazzi ho provato e funziona ora allora cambio la mia domanda:
    Diciamo che ho un file in php che chiamo pagina.php che è fatta per esempio così:
    [PHP]
    <?PHP
    $x="ciao";
    ?>[/PHP]
    E fino a qui ci siamo, ora mettiamo il caso che io voglia inserire una cosa tra <?PHP e $x?
    con fseek($fp,6) mi scrive da dopo <?PHP ma il problema è come devo aprire il file? con a+ mi accoda ma non mi si fila
    l'fseek() perchè accoda dalla fine, mentre con r+ mi cancella tutto quello dopo quello che inserisco...
    aiuto 😄


  • ModSenior

  • User Attivo

    <SPAN class=type>[PHP]
    resource fopen ( string $filename , string $mode [, bool $use_include_path [, resource $zcontext ]] )
    [/PHP]
    $zcontext è la chiave? non capisco, perchè se prenderebbe un'intero forse indicava la posizione...e comunque non accoderei i file ma li cancellerei ehehe


  • User Attivo

    Ok vi spiego un pò quello che ho capito lavorandoci su:
    Sappiamo che con a o a+ accodiamo al file quindi non va bene, r o r+ (o w o w+) non va bene nella mia posizione perchè anche contando i caratteri dopo di cui ci serve inserire del testo, quest'ultimo cancella tutto quello che viene dopo e quindi anche questo non va bene. Un modo per farlo ci sarebbe ma dovremmo passare il pezzo che in teoria viene distrutto in una stringa, dopodiche scrivere ciò che vogliamo e riaccodare questa stringa.
    Un pò un casino ma penso funzioni. Per quello che mi serviva a me alla fine faccio così:
    Praticamente tolgo ?> finale ed inserisco tutto il codice che mi serve poi insieme al codice inserisco anche (sempre sottoforma di stringa) ?> per la chiusura del file .php 😄 un macello ^^


  • User Attivo

    invece di a+, r+ ecc, prova a mettere x+...l'ho letto dal manuale, ma non l'ho mai provato...funzione con php 5


  • User Attivo

    Grazie per il consiglio, senti sempre da manuale sai se quindi scrive da dove ho il puntatore? perchè se è così sarebbe molto utile anche se diciamo ho aggirato questo mio problema...Grazie ancora per la risposta 😄


  • User Attivo

    praticamente ti mette il puntatore all'inizio del file...oppure puoi utilizzare un altra soluzione...l'ho adoperata tempo fa...
    ovvero, tu metti tutti i dati del file in una variabile, poi ci scrivi dentro al file e ti aggiungi i file della variabile...un esempio:

    [php]
    <?php
    $file="file.txt";
    $fx = fopen($file, 'r');
    $tmp = fread($fx, filesize($file));//legge tutto il file
    $var=$_GET['var'];//un esempio di variabile che ricevi da un form get
    fwrite($fp,"$var/n$tmp ")or die("Errore nella scrittura del file");
    fclose($fx);
    ?>
    [/php]

    Per il resto, consulta il manuale oppure vai qui:
    http://www.allwebfree.it/php_txt.php

    :wink3::wink3:


  • User Attivo

    Si ho fatto così per il modulo che cancella una certa cosa all'interno di un file (vedi: http://www.giorgiotave.it/forum/php-mysql/74844-script-newsletter-senza-mysql.html) poi per quanto riguarda aggiungere siccome non mi interessa dove aggiungere apro il file in w+ sovrascrivendo il tag di chiusura ?> , poi inserisco quello che voglio incluso infine il nuovo tag di chiusura ?> eehe Grazie per le risposte 😄


  • User Attivo

    Prova cosi:

    [PHP]<?php
    $file="file.txt";
    $fx = fopen($file, 'r+');
    $tmp = fread($fx, filesize($file));//legge tutto il file
    $riga= fgets ($fx, 8192);//mi posiziono al secondo rigo

    $var=$_GET['var'];//un esempio di variabile che ricevi da un form get
    $tutto="$riga<br>$var<br>$tmp<br>";
    fwrite($fp,"$tutto")or die("Errore nella scrittura del file");
    fclose($fx);
    ?> [/PHP]
    E' un esempio un po grossolano...non l'ho testato


  • User Attivo

    Ci provo e ti faccio sapere ora vado che domani a lavoro eheh ti ringrazio 😉