打印数组作为代码
我想将一个大的yaml文件转换为PHP数组源代码 。 我可以在yaml代码中读取并获取一个PHP数组,但是使用var_dump($ array),我得到伪代码作为输出。 我想打印数组作为有效的PHP代码,所以我可以复制粘贴它在我的项目,并沟yaml。
你正在寻找var_export
。
你可以使用var_export , 序列化 (在保留结束反序列化),甚至json_encode (并在接收端使用json_decode)。 最后一个产生输出的好处是可以处理任何可以处理JSON的东西。
不知道为什么,但我无法find满意的代码。
快速写这个。 让我知道如果你发现任何错误。
function printCode($array, $path=false, $top=true) { $data = ""; $delimiter = "~~|~~"; $p = null; if(is_array($array)){ foreach($array as $key => $a){ if(!is_array($a) || empty($a)){ if(is_array($a)){ $data .= $path."['{$key}'] = array();".$delimiter; } else { $data .= $path."['{$key}'] = \"".htmlentities(addslashes($a))."\";".$delimiter; } } else { $data .= printCode($a, $path."['{$key}']", false); } } } if($top){ $return = ""; foreach(explode($delimiter, $data) as $value){ if(!empty($value)){ $return .= '$array'.$value."<br>"; } }; return $return; } return $data; } //REQUEST $x = array('key'=>'value', 'key2'=>array('key3'=>'value2', 'key4'=>'value3', 'key5'=>array())); echo printCode($x); //OUTPUT $array['key'] = 'value'; $array['key2']['key3'] = 'value2'; $array['key2']['key4'] = 'value3'; $array['key2']['key5'] = array();
希望这有助于某人。