Ti sei perso il VI Convegno gt? Forse puoi rimediare... www.convegnogt.it X Chiudi
 
Forum GT: Condividiamo idee e conoscenza Forum GT: Condividiamo idee e conoscenza


Condividi questo contenuto nei Social Network:
Ti stiamo aspettando: Registrati subito e gratis. Entra a far parte di una delle comunità più attive in Italia. Se hai dimenticato i tuoi dati li puoi recuperare subito.


Vai indietro   Forum per Webmaster: Condividiamo Idee e Conoscenza > Sviluppo e Gestione siti web > Php - Mysql > Funzioni di PHP
Benvenuto! Forum Regole FAQ Lista utenti Calendario Segna come letti


Rispondi
 
LinkBack Strumenti di discussione
Vecchio 23-02-08, 18:33   #1 (permalink)
ModSenior
 
L'avatar di Samyorn
 
Data di registrazione: Dec 2007
Ubicazione: Catania
Messaggi: 5,703
Invia un messaggio tramite ICQ a Samyorn Invia un messaggio tramite Skype a Samyorn
[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
?>
__________________
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ì!!
Samyorn non in linea  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Segnalo this Post!OKNO this Post!
Rispondi citando
Vecchio 20-10-08, 15:41   #2 (permalink)
User Newbie
 
Data di 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 15:55.
titothefree non in linea  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Segnalo this Post!OKNO this Post!
Rispondi citando
Vecchio 20-10-08, 16:15   #3 (permalink)
ModSenior
 
L'avatar di Samyorn
 
Data di registrazione: Dec 2007
Ubicazione: Catania
Messaggi: 5,703
Invia un messaggio tramite ICQ a Samyorn Invia un messaggio tramite Skype a Samyorn
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
__________________
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ì!!
Samyorn non in linea  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Segnalo this Post!OKNO this Post!
Rispondi citando
Vecchio 20-10-08, 17:02   #4 (permalink)
User Newbie
 
Data di 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.
titothefree non in linea  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Segnalo this Post!OKNO this Post!
Rispondi citando
Vecchio 20-10-08, 23:05   #5 (permalink)
ModSenior
 
L'avatar di Samyorn
 
Data di registrazione: Dec 2007
Ubicazione: Catania
Messaggi: 5,703
Invia un messaggio tramite ICQ a Samyorn Invia un messaggio tramite Skype a Samyorn
Di nulla ....anzi...di cosa?? hai fatto tutto tu alla fine

Alla prossima
__________________
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ì!!
Samyorn non in linea  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Segnalo this Post!OKNO this Post!
Rispondi citando
Vecchio 24-09-09, 02:44   #6 (permalink)
User
 
Data di registrazione: Feb 2009
Messaggi: 131
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.
bigstefanino non in linea  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Segnalo this Post!OKNO this Post!
Rispondi citando
Vecchio 14-09-10, 18:52   #7 (permalink)
User
 
Data di registrazione: Jul 2010
Messaggi: 41
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
PSampras non in linea  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Segnalo this Post!OKNO this Post!
Rispondi citando
Vecchio 15-09-10, 05:30   #8 (permalink)
Moderatore
 
L'avatar di lucabartoli
 
Data di registrazione: Feb 2010
Ubicazione: Torino
Messaggi: 495
Invia un messaggio tramite Skype a lucabartoli
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
lucabartoli non in linea  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Segnalo this Post!OKNO this Post!
Rispondi citando
Vecchio 15-09-10, 12:20   #9 (permalink)
User
 
Data di registrazione: Jul 2010
Messaggi: 41
Quote:
lucabartoli Visualizza il 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
PSampras non in linea  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Segnalo this Post!OKNO this Post!
Rispondi citando
Rispondi
Tags: , ,



Strumenti di discussione

Regole di scrittura
Non puoi postare nuove discussioni
Non puoi rispondere alle discussioni
Non puoi allegare file
Non puoi editare i tuoi post

BB code is Attivo
smilies è Attivo
[IMG] il codice è Attivo
Il codice HTML è Disattivato
Trackbacks are Attivo
Pingbacks are Attivo
Refbacks are Disattivato
Vai al forum



Tutti gli orari sono GMT +3. Attualmente sono le 05:57.




Forum GT - © 2004-2009 GT idea S.r.l P.iva 02418200800 - Privacy/Disclaimer

SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.