2017-06-15 4 views
-1

ich in eine Datei ein Array in diesem Format protokollieren müssen:-PHP- Log Anfrage und Antwort-Header

`Array 
(
    [Date] => Thu, 15 Jun 2017 13:06:37 GMT 
    [Server] => Apache/2.4.18 (Win32) OpenSSL/1.0.2f PHP/5.6.18 
    [X-Powered-By] => PHP/5.6.18 
    [Content-Length] => 7790 
    [Content-Type] => application/json; charset=utf-8 
)` 

Wie kann ich es tun?

+0

Was protokollieren Sie? Wie loggen Sie? Was habt ihr denn jetzt? Was läuft falsch? – Matthijs

Antwort

0

Ich denke, was Sie suchen file_put_contents ist:

int file_put_contents (string $filename , mixed $data [, int $flags = 0 [, resource $context ]]) 

Scheint einfach zu bedienen. Es scheint jedoch, als ob die Übergabe eines Arrays den Schlüssel nicht enthält, ich würde json_encode ($ data) verwenden, um die Struktur intakt zu halten.

file_put_contents ($ filename, json_encode ($ data))

Exemple von dem, was ich in Logfile erhalten:

{"[Date]":"Thu, 15 Jun 2017 13:06:37 GMT","[Server]":"Apache\/2.4.18 (Win32) OpenSSL\/1.0.2f PHP\/5.6.18","[X-Powered-By]":"PHP\/5.6.18","[Content-Length]":"7790","[Content-Type]":"application\/json; charset=utf-8"} 

Die Vorteile dieser Methode wird Sie leicht in ein Array aus dem Logfile retransformieren kann , Wenn du möchtest.

Nun, fand eine andere noch einfachere Methode:

file_put_contents ($filename , print_r($data, true)); 

, die die Formatierung behält auch nach dem sie in die Datei setzen.

Exemple:

Array 
(
    [Date] => Thu, 15 Jun 2017 13:06:37 GMT 
    [Server] => Apache/2.4.18 (Win32) OpenSSL/1.0.2f PHP/5.6.18 
    [X-Powered-By] => PHP/5.6.18 
    [Content-Length] => 7790 
    [Content-Type] => application/json; charset=utf-8 
) 

http://php.net/manual/fr/function.file-put-contents.php