There are lots of questions and answers around the subject of valid php syntax from var outputs, what I am looking for is a quick and clean way of getting the output of var_export
to use valid php5.4 array syntax.
Given
$arr = [ 'key' => 'value', 'mushroom' => [ 'badger' => 1 ] ]; var_export($arr);
outputs
array ( 'key' => 'value', 'mushroom' => array ( 'badger' => 1, ), )
Is there any quick and easy way to have it output the array as defined, using square bracket syntax?
[ 'key' => 'value', 'mushroom' => [ 'badger' => 1 ] ]
Is the general consensus to use regex parsing? If so, has anyone come across a decent regular expression? The value level contents of the arrays I will use will all be scalar
and array
, no objects or classes.
I had something similar laying around.
function var_export54($var, $indent="") { switch (gettype($var)) { case "string": return '"' . addcslashes($var, "\\\$\"\r\n\t\v\f") . '"'; case "array": $indexed = array_keys($var) === range(0, count($var) - 1); $r = []; foreach ($var as $key => $value) { $r[] = "$indent " . ($indexed ? "" : var_export54($key) . " => ") . var_export54($value, "$indent "); } return "[\n" . implode(",\n", $r) . "\n" . $indent . "]"; case "boolean": return $var ? "TRUE" : "FALSE"; default: return var_export($var, TRUE); } }
It's not overly pretty, but maybe sufficient for your case.
Any but the specified types are handled by the regular var_export
. Thus for single-quoted strings, just comment out the string
case.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With