phpで定義済み変数の一覧をtableで出力
変数の一覧見たい時とかに。
php
function hoge($var) {
if(is_array($var)) {
echo "<table border='1'>";
foreach($var as $key => $value) {
echo "<tr>";
echo "<td>";
echo htmlspecialchars($key);
echo "</td>";
echo "<td>";
hoge($value);
echo "</td>";
echo "</tr>";
}
echo "</table>";
} else {
echo "<div>";
echo htmlspecialchars($var);
echo "</div>";
}
}
$vars = get_defined_vars();
unset($vars["GLOBALS"]);
hoge($vars);
注意
$GLOBALS
は値に自身の参照を持ってるので、
除外しておかないと無限再帰に陥って残念な事になるので注意。
javascriptで空の新規ウインドウに書き出してみたり
ちょっと改変。
php
<?php
function hoge2($var) {
if(is_array($var)) {
echo "<table border='1'>";
foreach($var as $key => $value) {
echo "<tr>";
echo "<td>";
echo htmlspecialchars($key, ENT_QUOTES);
echo "</td>";
echo "<td>";
hoge2($value);
echo "</td>";
echo "</tr>";
}
echo "</table>";
} else {
echo "<div>";
echo htmlspecialchars(
str_replace(array("\r\n", "\r", "\n"), "", var_export($var, true)),
ENT_QUOTES);
echo "</div>";
}
}
?>
php
<div>
<script type="text/javascript">
function vars() {
try {
var page = window.open("", "", "width=720,height=800,resizable=yes,scrollbars=yes,status=yes,location=no");
page.document.open();
page.document.write("<?php $vars = get_defined_vars(); unset($vars["GLOBALS"]); hoge2($vars); ?>");
page.document.close();
} catch(e) {
console.log(e);
} finally {
return false;
}
}
</script>
<a href="#" onclick='return vars();'>vars</a>
</div>