ProgramingTip

PHP var_dump () 값이 값당 한 줄을 표시하도록 만들기

bestdevel 2020. 11. 29. 12:01
반응형

PHP var_dump () 값이 값당 한 줄을 표시하도록 만들기


내가 var_dump ($ _ 변수)를 에코하면 다음과 같은 모든 변수와 값으로 하나의 긴 줄 바꿈이 표시됩니다.

["kt_login_user"]=>  string(8) "teacher1" ["kt_login_id"]=>  string(3) "973" ["kt_campusID"]=>  string(4) "9088" ["kt_positionID"]=>  string(1) "5" 

읽기 쉽도록 각 값을 한 줄에 표시 할 수있는 방법이 있습니까? 이 같은 :

["kt_login_user"]=>  string(8) "teacher1" 
["kt_login_id"]=>  string(3) "973" 
["kt_campusID"]=>  string(4) "9088" 
["kt_positionID"]=>  string(1) "5"

예, 다음과 같이 포장 해 포장 <pre>.

echo '<pre>' , var_dump($variable) , '</pre>';

나는 보통이 할 때 배열의 출력을 처리 할 수있는 멋진 기능을 있습니다.

function pr($data)
{
    echo "<pre>";
    print_r($data); // or var_dump($data);
    echo "</pre>";
}

그럼 그냥 불러

pr($array);

또는 이와 같은 편집기가 있으면 스 니펫을 저장하여 빌드하는 각 프로젝트 또는 빠른 함수를 만드는 대신에 더 빠른 액세스 할 수 있습니다.

대상 print_r:

echo "<pre>", print_r($data, 1), "</pre>";

대상 var_dump():

echo "<pre>", var_dump($data), "</pre>";

위의 PHP Storm과 함께 사용합니다. pr탭 명령으로 설정했습니다 .


나는 또한이 문제를 조사했지만 정답을 찾지 못했습니다. 이것은 나를 위해 작동하지 않습니다.

echo '<pre>' . var_dump($variable) . '</pre>';

이 나에게 줄 바꿈과 함께 배열의 멋진 앰프를 제공하지 않습니다 (Firefox 31.3.0을 사용하고 있습니다)

그러나 몇 가지 실험 후에 문제가 해결되었습니다 (처음에는 php가 닫혀 있음).

... ?> <pre><?php echo var_dump($variable) ?></pre> <?php ...

이 문제를 해결하고 내 브라우저에 멋지고 읽기 쉬운 배열을 표시합니다. 태그가 PHP에서 어떻게 래핑되지 않는지 알 수 있습니다. echo var_dump 부분 만 있습니다.


XDebug가를 설치 한 경우 var_dump대신 사용할 수 있습니다 . 인용 :

Xdebug는 변수를 표시하기 위해 PHP의 var_dump () 함수를 대체합니다. Xdebug의 버전은 다양한 유형에 대해 다른 색상을 포함하고 배열 요소 / 배열 속성의 양, 최대 깊이 및 길이에 제한을 제한합니다. 변수 표시를 다루는 몇 가지 다른 기능도 있습니다.

다음 설정 중 일부를 사용할 수 있습니다.

Xdebug의 수정 된 var_dump () 함수의 출력을 제어하는 ​​더 많은 설정이 있습니다 : xdebug.var_display_max_children, xdebug.var_display_max_data 및 xdebug.var_display_max_depth. 이 세 가지 설정의 효과는 예를 통해 가장 잘 나타납니다. 아래 펼쳐지는 각기 다른 설정으로 4 번 실행됩니다. 탭을 사용하여 차이점을 확인할 수 있습니다.

그러나 XDebug는 방금로드 된 경우에도 코드 속도를 상당히 느리게합니다. 모든 서버에서 실행하는 것이 좋습니다. 하지만 어쨌든 서버에서는 var_dumping이 아니죠?


var_export 는 멋진 출력을 제공합니다. 문서의 예 :

$a = array (1, 2, array ("a", "b", "c"));
echo '<pre>' . var_export($a, true) . '</pre>';

출력 :

array (
  0 => 1,
  1 => 2,
  2 => 
  array (
    0 => 'a',
    1 => 'b',
    2 => 'c',
  ),
)

나에게 정답은

echo '<pre>' . var_export($var, true) . '</pre>';

이후 var_dump($var)var_export($var)문자열을 반환하지 않습니다,은 사용할 필요 당신가 var_export($var, true)강제로 var_export값으로 결과를 반환 할 수 있습니다.


Ctrl+ U를 누르세요 소스 코드를 볼 수 있습니다 . 대부분의 브라우저는 출력을 예쁘게 만듭니다.

var_dump 수행하는 가장 추악한 방법입니다.


출력 버퍼 사용 : http://php.net/manual/de/function.ob-start.php

<?php
    ob_start();
    var_dump($_SERVER) ;
    $dump = ob_get_contents();
    ob_end_clean();

    echo "<pre> $dump </pre>";
?>

또 다른 옵션은 출력 버퍼링사용하고 모든 줄 바꿈<br>요소 로 변환하는 것입니다.

ob_start();
var_dump($_SERVER) ;
echo nl2br(ob_get_clean());

저는 var_export ()를 정말 좋아합니다. 복사 /에 넣기 가능한 코드가 마음에 드는 다음을 시도하십시오.

echo '<pre>' . var_export($data, true) . '</pre>';

또는 색상 구문 강조를 위해 다음과 같이 할 수도 있습니다.

highlight_string("<?php\n\$data =\n" . var_export($data, true) . ";\n?>");

뷰 소스CLI 에서 작동하는 작업이 필요한 개발자의 경우 특히 단위 테스트를 수행 할 때 유용합니다.

echo vd([['foo'=>1, 'bar'=>2]]);

function vd($in) {
  ob_start(); 
  var_dump($in);
  return "\n" . preg_replace("/=>[\r\n\s]+/", "=> ", ob_get_clean());
}

수율 :

array(1) {
  [0] => array(2) {
    'foo' => int(1)
    'bar' => int(2)
  }
}

<pre>서식을 유지하려면 태그로 묶습니다 .


비슷한 해결책을 찾았습니다. 'vardump'를 다음으로 대체하는 스 니펫을 만들었습니다.

foreach ($variable as $key => $reg) {
    echo "<pre>{$key} => '{$reg}'</pre>";
}
var_dump($variable);die;

추신 : 파일 이름과 줄을 얻기 위해 마지막 var_dump로 데이터를 반복하고 있습니다.

그래서 이것은 : 이렇게 여기에 이미지 설명 입력되었습니다 :여기에 이미지 설명 입력

이것이 도움이 될지 알려주십시오.


내가 사용을 중지하고 싶지 않았다 var_dump($variable);die();및 사용 pre그래서 브라우저에서 덤프에서 찾고 있기 때문에, 난 그냥 오른쪽 페이지를 클릭하고 (내가 크롬을 사용)을 검사 선택, 태그 및 루프 나에게 과잉 것입니다. 개발자 도구의 요소 섹션은 매우 읽기 쉬운 형식으로 변수를 표시합니다.


개인적으로 나는 Symfony의 var dumper 컴포넌트에서 제공하는 대체 기능을 좋아합니다.

함께 설치 composer require symfony/var-dumper하고 사용하십시오.dump($var)

나머지는 알아서 처리합니다. 나는 또한 약간의 JS가 삽입되어 출력과 약간의 상호 작용을 할 수 있다고 생각합니다.

참고 URL : https://stackoverflow.com/questions/10116063/making-php-var-dump-values-display-one-line-per-value

반응형