2010-07-25 8 views
22

Voglio eseguire il dump delle variabili di richiesta in un file per il debug. Com'è possibile?

risposta

44
<?php 
$req_dump = print_r($_REQUEST, TRUE); 
$fp = fopen('request.log', 'a'); 
fwrite($fp, $req_dump); 
fclose($fp); 

Untested, ma dovrebbe fare il lavoro, basta cambiare request.log al file che si desidera scrivere.

+1

piccolo dettaglio insignificante, ma dimenticato la chiusura> Chiusura –

+18

> non è necessario, a tutti??. Effettivamente è meglio fare pratica quando si scrivono librerie/etc (non che questo sia rilevante qui) per ometterlo in modo da garantire che non si verifichino output accidentali di spazi bianchi che potrebbero compromettere il buffering dell'output/le intestazioni/etc. – 46bit

+4

Mi piace 'var_export ($ var, true)' personalmente. – Cole

4

Utilizzare la funzione serialize() per lo scarico. Discarica $_SERVER, $_COOKIE, $_POST e $_GET separatamente (può andare allo stesso file). Se stai pianificando il debugging dei dati, è utile sapere se i dati facevano parte di una richiesta POST o GET.

Il dumping di tutto è utile per il debug in fase di sviluppo, ma non così in produzione. Se la tua applicazione non ha molti utenti, può funzionare anche in produzione. Se si prevedono molti utenti, si consiglia di scaricare solo i dati $_POST o limitare le variabili del server a quelli che iniziano con HTTP_.

7

penso che al giorno d'oggi questo metodo è più semplice e veloce:

$req_dump = print_r($_REQUEST, true); 
$fp = file_put_contents('request.log', $req_dump); 
+3

Probabilmente vorrai aggiungere al registro: 'file_put_contents ('request.log', $ req_dump, FILE_APPEND)' – jmb