반응형
배열을 코드로 인쇄
저는 큰 yaml 파일을 PHP 배열 소스 코드로 변환하고 싶습니다.yaml 코드를 읽고 PHP 배열을 가져올 수 있지만 var_dump($array)를 사용하면 의사 코드를 출력으로 받습니다.저는 제 프로젝트에서 복사 붙여넣기를 하고 yaml을 버릴 수 있도록 배열을 유효한 php 코드로 인쇄하고 싶습니다.
당신은 찾고 있습니다.
var_export, serialize(예약 측에서 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();
이것이 누군가에게 도움이 되기를 바랍니다.
배열을 들여쓰기가 있는 코드로 표시하는 또 다른 방법입니다.
문자열, 정수 및 배열을 포함하는 배열로만 테스트됩니다.
function bo_print_nice_array($array){
echo '$array=';
bo_print_nice_array_content($array, 1);
echo ';';
}
function bo_print_nice_array_content($array, $deep=1){
$indent = '';
$indent_close = '';
echo "[";
for($i=0; $i<$deep; $i++){
$indent.=' ';
}
for($i=1; $i<$deep; $i++){
$indent_close.=' ';
}
foreach($array as $key=>$value){
echo "<br>".$indent;
echo '"'.$key.'" => ';
if(is_string($value)){
echo '"'.$value.'"';
}elseif(is_array($value)){
bo_print_nice_array_content($value, ($deep+1));
}else{
echo $value;
}
echo ',';
}
echo '<br>'.$indent_close.']';
}
언급URL : https://stackoverflow.com/questions/5139637/print-an-array-as-code
반응형
'programing' 카테고리의 다른 글
| 파일 수 x개 유지 및 다른 모든 파일 삭제 - Powershell (0) | 2023.08.15 |
|---|---|
| 다른 사용자가 설치한 앱을 제거하는 방법은 무엇입니까? (0) | 2023.08.15 |
| Android ListView 행을 추가 또는 제거하는 애니메이션 방법 (0) | 2023.08.15 |
| 특정 파이썬 버전으로 콘다 환경을 만드는 방법은 무엇입니까? (0) | 2023.08.10 |
| 보기의 치수를 검색하는 방법은 무엇입니까? (0) | 2023.08.10 |