単純に var_dump()
では困るとき(Ajax とか)。
ファイルに出力したり、
FirePHP や Chrome Logger を使ってみたり、
いろいろ方法はあると思いますが、準備とか無しでもっとやっつけでやりたいとき。
次のような関数をどこかで定義します。
<?php
function trace($data)
{
static $sock;
if (isset($sock) === false){
$sock = fsockopen('192.0.2.123', 12345);
}
if ($sock) {
fwrite($sock, json_encode($data, JSON_UNESCAPED_UNICODE) . "\n");
}
}
192.0.2.123 で nc で待ち受けます。
$ nc -lk 12345
PHP で次のように呼び出します。
<?php
trace(123);
trace(['key' => 123]);
192.0.2.123 のコンソールに垂れ流されます。
$ nc -lk 12345
123
{"key":123}
次のように変更すれば、
<?php
function trace($data)
{
static $sock;
if (isset($sock) === false){
$sock = fsockopen('udp://192.0.2.123', 12345);
}
if ($sock) {
fwrite($sock, json_encode($data, JSON_UNESCAPED_UNICODE) . "\n");
}
}
UDP でもできます。
$ nc -ukl 12345 -w 0
123
{"key":123}
次のように変更すれば、
<?php
function trace($data)
{
static $sock;
if (isset($sock) === false){
$sock = fsockopen('tls://192.0.2.123', 12345);
}
if ($sock) {
fwrite($sock, json_encode($data, JSON_UNESCAPED_UNICODE) . "\n");
}
}
TLS でもできます。
$ sudo openssl s_server -key /etc/pki/tls/private/localhost.key -cert /etc/pki/tls/certs/localhost.crt -accept 12345 -quiet
123
{"key":123}