我想将一个大的yaml文件转换为PHP数组源代码。我可以读取yaml代码并获取一个PHP数组,但使用var_dump($ array),我得到伪代码作为输出。我想打印这个数组作为有效的PHP代码,所以我可以将它粘贴到我的项目中,然后放弃yaml。打印阵列为代码
打印阵列为代码
回答
您正在查找var_export
。
ie:'$ string_representation = var_export($ complex_array,TRUE);' – ErichBSchulz 2013-09-21 00:13:06
非常感谢。 – Iscariot 2015-10-27 23:25:26
有没有一种方法来var [参数]而不是array()? – Oliboy50 2016-10-19 10:08:57
您可以使用var_export,serialize(在预订端有反序列化),或者甚至使用json_encode(并在接收端使用json_decode)。最后一个产生的输出可以被任何可以处理JSON的东西处理。
不知道为什么,但我无法在任何地方找到令人满意的代码。
快速写下这个。让我知道如果你发现任何错误。
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();
希望这可以帮助别人。
- 1. java阵列打印为空
- 2. 打印阵列
- 3. 打印阵列
- 4. 打印阵列
- 5. 打印阵列
- 6. 打印阵列
- 7. 要打印代码列表?
- 8. 不打印阵列
- 9. C++打印阵列
- 10. Laravel打印阵列
- 11. 打印在阵列
- 12. 空阵列打印
- 13. 阵列打印奇怪的号码
- 14. C++:打印/分配简单阵列打印乱码
- 15. 打印阵列列表
- 16. 代码点火器打印阵列尺寸
- 17. 存储在阵列和打印阵列
- 18. 打印阵列的子阵列
- 19. 使用1d阵列打印2d阵列
- 20. 打印阵列[1]阵列[n]
- 21. 阵列中的阵列打印元素
- 22. PHP JSON打印阵列阵列
- 23. 阵列打印为json,数组和xml
- 24. 打印哈希散列作为矩阵
- 25. AWK打印字作为阵列
- 26. 打印PHP代码
- 27. PHP打印代码(打印成纸)
- 28. 的NSDictionary - 打印阵列
- 29. 打印阵列在PHP
- 30. 打印阵列信息
出于好奇,你为什么想要沟渠yaml?这是一个非常棒的格式,您和其他人可以手动编辑。 :-) – Benson 2011-02-28 10:44:34
如果将它与'包含'一个php数组进行比较,那么在每个请求上解析YAML文件相对较慢。在我目前的项目中,速度更重要。 – 2011-02-28 11:07:54