Я хочу преобразовать большой файл yaml в исходный код массива PHP. Я могу читать код yaml и возвращать массив PHP, но с var_dump ($ array) я получаю псевдокод в качестве вывода. Я хотел бы напечатать массив как действительный php-код, поэтому я могу скопировать его в мой проект и вырезать yaml.
Вы ищете var_export
.
Вы можете использовать var_export , сериализовать (с unserialize на конце резервирования) или даже 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();
Надеюсь, это поможет кому-то.