+ Rispondi alla Discussione
Risultati da 1 a 9 di 9

[File e Cartelle] file_get_contents();

Ultimo Messaggio di PSampras il:
  1. #1
    Consiglio Direttivo L'avatar di Samyorn
    Data Registrazione
    Dec 2007
    Localit
    Catania
    Messaggi
    5,904
    Segui Samyorn su Twitter Aggiungi Samyorn su Google+ Aggiungi Samyorn su Facebook Aggiungi Samyorn su Linkedin

    [File e Cartelle] file_get_contents();

    PHP 4.3.0, 5
    Sintatti: string file_get_contents ( string $file [, bool $use_include_path [, resource $context [, int $offset ]]] )

    file_get_contents una funzione di PHP che memorizza il contenuto del file in un unica stringa, diversamente da come avviene con la funzione file(); che memorizza le varie righe come elementi di un array.
    Tramite il parametro $offset (introdotto dal PHP 5.1.0) possibile specificare da quale numero di carattere cominciare questa "estrazione".

    file.txt
    Codice:
    abcdefghilm
    Codice PHP:
    <?
    $file 
    "file.txt";
    $string file_get_contents ($file);
    echo 
    $string// risultato: abcdefghilm
     
    $string file_get_contents ($file2); // impostiamo un offset
    echo $string// risultato: cdefghilm
    ?>
    MODFunzioni di PHP Qui, Quo, Qua
    Si parla poco di SMF? Sentiamo l'opinione di chi lo ha provato. Ti amo...brindiAMO?
    Conosci GTLab? Devi scegliere un CMS per Forum e non sai quale? Guarda qu!!

  2. #2
    User Newbie
    Data Registrazione
    Oct 2008
    Messaggi
    2
    E se il file da recuperare una pagina (php o html) ?
    Con file_get_contents viene recuperata la pagina, o meglio il codice della pagina, se alcune informazioni sono contenute in un file javascript richiamato dalla pagina ed elaborato dal browser nn sono recuperabili dalla funzione;

    Se quindi $html=file_get_contents() il contenuto del javascript nn c' sta come si pu fare per recuperare le informazioni contenute nel file javascript e magari metterle nella variabile ? (escludendo fsocket() e simili).

    un problemino che sto cercando di risolvere da qualche giorno grazie per l'aiuto.
    Ultima modifica di titothefree; 20-10-08 alle 13:55

  3. #3
    Consiglio Direttivo L'avatar di Samyorn
    Data Registrazione
    Dec 2007
    Localit
    Catania
    Messaggi
    5,904
    Segui Samyorn su Twitter Aggiungi Samyorn su Google+ Aggiungi Samyorn su Facebook Aggiungi Samyorn su Linkedin
    Ciao titothefree e benvenuto nel Forum GT

    Il problema che tu sbagli approccio con la funzione, file_get_contents() non recupera la pagina o il codice della pagina....questa funzione fa esattamente un copiaincolla del file che tu hai puntato. Quindi se nel tuo file viene richiamato lo script esterno.......troverai solo ed esclusivamente il richiamo allo script esterno...esattamente per come nel file che stai puntando, se vuoi recuperare

    file.html
    Codice HTML:
    <html>
    <head>
    <script language="javascript" src="filejs.js">
    </head>
    <body>
    etc etc
    Eseguiamo la funzione su questo file
    Codice PHP:
    <?
    $html
    =file_get_contents("file.html");
    ?>
    Questo sar il codice contenuto nella variabile $html:
    Codice HTML:
    <html>
    <head>
    <script language="javascript" src="filejs.js">
    </head>
    <body>
    etc etc
    Se tu vuoi conoscere il contenuto di filejs.js dovrai far puntare la funzione direttamente al filejs.js
    Codice PHP:
    <?
    $html
    =file_get_contents("filejs.js");
    ?>
    Spero di esser stato chiaro
    MODFunzioni di PHP Qui, Quo, Qua
    Si parla poco di SMF? Sentiamo l'opinione di chi lo ha provato. Ti amo...brindiAMO?
    Conosci GTLab? Devi scegliere un CMS per Forum e non sai quale? Guarda qu!!

  4. #4
    User Newbie
    Data Registrazione
    Oct 2008
    Messaggi
    2
    Grazie per la velocit della risposta, in fondo nn sei cos diversamente agile
    Premetto che ho risolto ad ogni modo,ti devo un paio di precisazioni:

    A me serviva salvare una pagina (risultato di un form) in un file, in automatico. tipo deve fare una "foto" della pagina e salvarla in un file che viene archiviato in una dir in formato txt o html, quindi nn servono solo i dati del form, ma la pagina completa una volta visualizzata sul lato client e mi interessa salvarla tutta (naturalmente sul lato server).

    ho provato con fsocket ma il server mi da un warning (Warning: fsockopen() has been disabled);
    a includere la pagina e il risultato simile (Warning: include() [function.include]: URL file-access is disabled in the server configuration)


    cos ho provato con file_get_contents e il dilemma mi sembrava risolto invece... il file di ritorno che salvavo non aveva il risultato del form.

    Pensavo fosse un problema di javascript invece nel form c' del testo e lo passavo nudo e crudo, e con urlencode(teso) ho risolto , alla fine sono le cose pi semplici che mi complicano la vita...


    Grazie ancora per l'aiuto.

  5. #5
    Consiglio Direttivo L'avatar di Samyorn
    Data Registrazione
    Dec 2007
    Localit
    Catania
    Messaggi
    5,904
    Segui Samyorn su Twitter Aggiungi Samyorn su Google+ Aggiungi Samyorn su Facebook Aggiungi Samyorn su Linkedin
    Di nulla ....anzi...di cosa?? hai fatto tutto tu alla fine

    Alla prossima
    MODFunzioni di PHP Qui, Quo, Qua
    Si parla poco di SMF? Sentiamo l'opinione di chi lo ha provato. Ti amo...brindiAMO?
    Conosci GTLab? Devi scegliere un CMS per Forum e non sai quale? Guarda qu!!

  6. #6
    User
    Data Registrazione
    Feb 2009
    Messaggi
    134
    Vi prego fatemi capire come ha risolto lui il problema...
    io uso delle sessioni per "riempire i campi" ma con l'uso del file_get_contens risultano vuoti....


    Grazie per l'aiuto.

  7. #7
    User
    Data Registrazione
    Jul 2010
    Messaggi
    55
    Buon pomeriggio,
    vi espongo il mio problema:

    in una cartella ho un numero imprecisato di file di testo, alcuni dei quali iniziano con la seguente stringa:
    Codice:
    <?xml version="1.0" encoding="ISO-8859-1"?>
    Ho realizzato il seguente script automatico che aggiunge questa stringa a tutti i file che non ce l'hanno:

    Codice PHP:
    $dir = "./"; //questo file  stato inserito nella stessa dir nella quale si trovano i file da analizzare

    // Open a known directory, and proceed to read its contents
    if (is_dir($dir)) {
        if ($dh = opendir($dir)) {
            $count = 0;
            while (($file = readdir($dh)) !== false) {
                 if ($file != 'text.php') { //non voglio che la stringa venga aggiunta anche a questo file
                     $old_content = file_get_contents($file);
                     $codifica = '<?xml version="1.0" encoding="ISO-8859-1"?>';
                     if(substr($old_content, 0, 5) != '<?xml ') {    
                        $new_content = $codifica . "\r\n" . $old_content;
                        file_put_contents($file, $new_content);
                        $count++;
                        echo "$count Il file: $file  stato modificato" . "<br />";
                     }        
                  }
              }
            echo "Totale file modificati: " . $count;
            closedir($dh);
        }
    }
    Il problema che la stringa viene aggiunta anche a quei file che gi ce l'hanno. Ci dovuto alla funzione file_get_contents che non legge il testo contenuto nei tag. Come posso fare?
    Tanti consigliano include() ma non credo vada bene in questo caso visto che ho dei file di testo.

    Vi ringrazio anticipatamente e vi saluto

  8. #8
    Moderatore L'avatar di lucabartoli
    Data Registrazione
    Feb 2010
    Localit
    Torino
    Messaggi
    510
    Ciao PSampras,

    La stringa ti viene aggiunta perch prendi una porzione di 5 caratteri con il substr e poi nell'if la compari con "<?xml " che di caratteri ne ha 6. Ovviamente quella condizione sar sempre vera e quindi ti riaggiunge la arringa anche quando gi presente.

    Comunque, una soluzione pi elegante, che posso consigliarti di usare, la preg_match, che usa espressioni regolari per verificare se il testo presente ed quindi un po' pi flessibile.

    Ciao,
    Luca Bartoli

  9. #9
    User
    Data Registrazione
    Jul 2010
    Messaggi
    55
    Citazione Originariamente Scritto da lucabartoli Visualizza Messaggio
    La stringa ti viene aggiunta perch prendi una porzione di 5 caratteri con il substr e poi nell'if la compari con "<?xml " che di caratteri ne ha 6. Ovviamente quella condizione sar sempre vera e quindi ti riaggiunge la arringa anche quando gi presente.
    Hai ragione ma il problema resta, in quanto il comando:
    Codice PHP:
    $old_content file_get_contents($file); 
    memorizza nella variabile $old_content la seguente stringa:
    Codice:
    n_htmlrow   idbon   import_bonifici...etc...
    saltando la prima parte del file di testo, quella contenente i tags. Te la riporto per chiarezza:
    Codice:
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <zoom hastotals="off" step="30">
      <htmlrow class="f_elabora_bonifici_HtmlRow">n_htmlrow</htmlrow>
      <pk type="N">idbon</pk>
      <table>import_bonifici</table>
      <template>../zoom_cariddi</template>
    Come vedi, la prima cosa "vista" dal file_get_contents n_htmlrow, ovvero la prima stringa non contenuta nei tag.

    C' un modo per risolvere?
    Come bisogna usare la funzione preg_match? Ho provato con
    Codice PHP:
    preg_match($stringa$file
    ma non funziona.

    Grazie per l'aiuto

+ Rispondi alla Discussione

Tag per Questa Discussione

^ Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •  
  • Il codice BB Attivato
  • Le faccine sono Attivato
  • Il codice [IMG] Attivato
  • Il codice [VIDEO] Attivato
  • Il codice HTML Disattivato
  • Trackbacks Attivato
  • Pingback Attivato
  • Refback Attivato

SEO by vBSEO 3.6.0 PL2 ©2011, Crawlability, Inc.