Var_dump চেহারা সুন্দর করুন


131

$_GET[]ডিবি থেকে কোয়েরিগুলি টানানোর সময় টেস্টিং ডেটা দেখানোর জন্য আমার কাছে একটি সাধারণ ক্যোয়ারী ভার সেট রয়েছে।

<?php if($_GET['test']): ?>
  <div id="test" style="padding: 24px; background: #fff; text-align: center;">  
    <table>
      <tr style="font-weight: bold;"><td>MLS</td></tr>
      <tr><td><?php echo KEY; ?></td></tr>
      <tr style="font-weight: bold;"><td>QUERY</td></tr>
      <tr><td><?php echo $data_q; ?></td></tr>
      <tr style="font-weight: bold;"><td>DATA</td></tr>
      <tr><td><?php var_dump($data); ?></td></tr>
    </table>    
</div>
<?php endif; ?>

যখন আমি করি var_dump, প্রত্যাশা হিসাবে এটি এই বড় অ্যারে স্ট্রিং যা সমস্ত একসাথে মিশ্রিত হয়। কমপক্ষে এর জন্য লাইন ব্রেকগুলিতে যুক্ত করার উপায় বা var_dumpএমনভাবে প্রদর্শনযোগ্য যে আরও পাঠযোগ্য? আমি স্ট্রিং পোস্ট করার পরে কারসাজির বিষয়ে jQuery পরামর্শগুলির জন্য উন্মুক্ত।


48
হ্যাঁ। echo '<pre>'; var_dump($data); echo '</pre>'
অমল মুরালি

9
এই ম্যাজিক কি ?!
প্লামার

কিভাবে var_masterpiece ব্যবহার সম্পর্কে। chrome.google.com/webstore/detail/varmasterpiece/…
বিজয়ন

প্রথম দিকে যখন প্রশ্ন জিজ্ঞাসা করা হয়েছিল তখন আমি ওয়েবস্টোরটিতে ছিলাম বলে মনে করি না। এটি দেখার জন্য যে কারও জন্য একটি শট মূল্যবান।
প্লামার

1
আমি মনে করি আপনি কেবল চান print_r($data)php.net/manual/en/function.print-r.php
ড্রু বাকের

উত্তর:


369

আমি সত্যিই ভালবাসি var_export()। আপনি যদি অনুলিপি / পেস্ট-সক্ষম কোডটি পছন্দ করেন তবে চেষ্টা করুন:

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

এমনকি রঙিন সিনট্যাক্স হাইলাইট করার জন্য এর মতো কিছু:

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

আপনি একই সঙ্গে করতে পারেন print_r()। জন্য var_dump()আপনি শুধু যোগ করতে হবে <pre>ট্যাগ:

echo '<pre>';
var_dump($data);
echo '</pre>';

7
মনে রাখবেন যে echo, var_exportএবং highlight_stringসমস্ত পিএইচপি ফাংশন এবং একটি <?php ?>ব্লকের ভিতরে থাকা প্রয়োজন । হ্যাঁ হাইলাইট_ স্ট্রিং ফাংশন লাইনের ভিতরে <? পিএইচপি?> জুটি থাকলেও বাইরের চারপাশেও একটি জুড়ি প্রয়োজন।
বিউওলফনোড 42

এই var_dump এর একটি সংক্ষিপ্ত পরিবর্তন:var_dump(highlight_string("<?\n". var_export($data, true)));
jhpg

40

পিএইচপি জন্য xdebug এক্সটেনশন চেষ্টা করুন ।

উদাহরণ:

<?php var_dump($_SERVER); ?>

আউটপুট:

এখানে চিত্র বর্ণনা লিখুন


7
মনে মনে, xdebug কেবলমাত্র বেশিরভাগ var_dump এর চেয়ে বেশি কাজ করে :)
ল্যাথিসান

আমি var_dump করার সময় এইরকম দেখতে পেতাম, তবে এখন আমার পিএইচপি 5.5.12 এর সাথে ওয়্যাম্পসারভার 2.5 রয়েছে আমি এটির বিন্যাস ছাড়াই দেখতে পাচ্ছি। ওয়্যাম্পসারভার ছাড়া আর কিছু না ইনস্টল করে আমি কীভাবে আগে তোমার ছবির মতো দেখতে পেলাম?
লিমন

1
এটি অবশ্যই খুব সেক্সি। কেন এটি সঠিক সমাধান হিসাবে চিহ্নিত করা হচ্ছে তা নিশ্চিত নয় তবে আপনি ইনস্টল প্রক্রিয়া সম্পর্কে আরও বিশদ দিতে পারেন। উইন্ডোজগুলিতে, এটি ঠিক ছিল extension=php_xdebug.dll, নয়zend_extension=/some/really/long/specific/path/xdebug.so
ক্রাং প্রাইম

22

প্রিফর্মেটেড এইচটিএমএল উপাদান ব্যবহার করুন

echo '<pre>';
var_dump($data);
echo '</pre>';

10

আমি @ অ্যাব্রাকাডাভার উত্তরগুলিতে একটি সংযোজন করেছি। আমি একটি জাভাস্ক্রিপ্ট স্ক্রিপ্ট অন্তর্ভুক্ত করেছি যা পিএইচপি শুরু এবং সমাপনী ট্যাগ মুছে ফেলবে। আমরা আরও সুন্দর ডাম্প পরিষ্কার করতে হবে।

এই মত কেউ হতে পারে।

function dd($data){
  highlight_string("<?php\n " . var_export($data, true) . "?>");
  echo '<script>document.getElementsByTagName("code")[0].getElementsByTagName("span")[1].remove() ;document.getElementsByTagName("code")[0].getElementsByTagName("span")[document.getElementsByTagName("code")[0].getElementsByTagName("span").length - 1].remove() ; </script>';
  die();
}

এর আগে ফলাফল:

এখানে চিত্র বর্ণনা লিখুন

এর পরে ফলাফল:

এখানে চিত্র বর্ণনা লিখুন

এখন আমাদের পিএইচপি শুরু এবং সমাপনী ট্যাগ নেই


3

যদি এটি "সমস্ত একসাথে ধোঁয়া" থাকে তবে আপনি প্রায়শই ওলকে "ভিউ সোর্স কোড" দিতে পারেন। কখনও কখনও ডাম্প, বার্তা এবং ব্যতিক্রমগুলি মনে হয় যে এটি কেবল একটি দীর্ঘ স্ট্রিং যখন যখন দেখা যাচ্ছে যে লাইনটি বিরতি কেবল দেখায় না। বিশেষত এক্সএমএল গাছ।

বিকল্পভাবে, আমি এই উদ্দেশ্যে খুব একবার ইন্টারেক্টিভ ভারডাম্প নামে একটি ছোট্ট ছোট্ট সরঞ্জাম তৈরি করেছি । এটির অবশ্যই অবশ্যই এর সীমা রয়েছে তবে এটি কখনও কখনও খুব সুবিধাজনকও হতে পারে। যদিও এটি পিএইচপি 5 টি মাথায় রেখে ডিজাইন করা হয়েছিল।


1

সুন্দর ভার_ডাম্প পাওয়ার সর্বোত্তম কোনটি এবং সহজ উপায় হল xDebug ব্যবহার (কোনও পিএইচপি দেবের জন্য অবশ্যই থাকতে হবে) ডেবিয়ান ওয়ে ইনস্টল করুন

কনসোলে: apt-get install php-xdebug পরে আপনার এটি /etc/php/7.0/fpm/php.ini এর জন্য php.ini (আপনি কোন স্ট্যাকটি ব্যবহার করেন তার উপর নির্ভর করে) খুলতে হবে

সন্ধান করা display_errors

একই সেট -> display_errors = On

পরীক্ষা করে দেখুন html_errorsএকটি সামান্য বিট নিচে একই ফাইলের মধ্যে, এটি করা আবশ্যকOn

সংরক্ষণ এবং ত্যাগ

খোলা পরে /etc/php/7.0/fpm/conf.d/20-xdebug.ini

এবং শেষে যুক্ত করুন: `` `xdebug.cli_color = 1

`` `সংরক্ষণ করুন এবং প্রস্থান করুন।

Xdebug এর জন্য অন্যান্য প্রচুর উপলভ্য বিকল্প এবং ডকুমেন্টেশন এখানে প্রতিষ্ঠিত হতে পারে।

https://xdebug.org/docs/

গুড লাক এবং মজা আছে !!!

ফলাফল



1

একটি সুন্দর var_dump আছে আমার ফাংশন এখানে। এক্সডিবাগের সাথে সম্মিলিত , আমরা কী ডাম্প করছি তার আরও ভাল দৃষ্টিভঙ্গি তৈরি করতে এটি প্রচুর সহায়তা করে।

আমি এক্সডিবাগের প্রদর্শনটি কিছুটা উন্নত করেছি (চারপাশে কিছু স্থান দিন, মানগুলির মধ্যে বিভাজক, দীর্ঘ ভেরিয়েবলগুলি মোড়ানো) rap

আপনি যখন ফাংশনটি কল করেন, আপনি কোনও পৃষ্ঠায় আপনার সমস্ত var_dump আলাদা করার জন্য একটি শিরোনাম, একটি পটভূমি, একটি পাঠ্য রঙ সেট করতে পারেন।

অথবা না ;)

/**
 * Pretty var_dump 
 * Possibility to set a title, a background-color and a text color
 */ 
function dump($data, $title="", $background="#EEEEEE", $color="#000000"){

    //=== Style  
    echo "  
    <style>
        /* Styling pre tag */
        pre {
            padding:10px 20px;
            white-space: pre-wrap;
            white-space: -moz-pre-wrap;
            white-space: -pre-wrap;
            white-space: -o-pre-wrap;
            word-wrap: break-word;
        }

        /* ===========================
        == To use with XDEBUG 
        =========================== */
        /* Source file */
        pre small:nth-child(1) {
            font-weight: bold;
            font-size: 14px;
            color: #CC0000;
        }
        pre small:nth-child(1)::after {
            content: '';
            position: relative;
            width: 100%;
            height: 20px;
            left: 0;
            display: block;
            clear: both;
        }

        /* Separator */
        pre i::after{
            content: '';
            position: relative;
            width: 100%;
            height: 15px;
            left: 0;
            display: block;
            clear: both;
            border-bottom: 1px solid grey;
        }  
    </style>
    ";

    //=== Content            
    echo "<pre style='background:$background; color:$color; padding:10px 20px; border:2px inset $color'>";
    echo    "<h2>$title</h2>";
            var_dump($data); 
    echo "</pre>";

}

1
function var_view($var)
{

    ini_set("highlight.keyword", "#a50000;  font-weight: bolder");
    ini_set("highlight.string", "#5825b6; font-weight: lighter; ");

    ob_start();
    highlight_string("<?php\n" . var_export($var, true) . "?>");
    $highlighted_output = ob_get_clean();

    $highlighted_output = str_replace( ["&lt;?php","?&gt;"] , '', $highlighted_output );

    echo $highlighted_output;
    die();
}

1

এটির সদৃশ হিসাবে এটি বন্ধ করার মতো পর্যাপ্ত প্রতিনিধি আমার কাছে নেই বলে মনে হয়, তবে অন্য কেউ এটি করতে পারলে এটি এক। আমি পিএইচপি-র আরও সুন্দর / তথ্যপূর্ণ ভার_ডাম্প বিকল্পে একই জিনিস পোস্ট করেছি ?তবে সময় বাঁচানোর স্বার্থে, আমি এটি এখানে অনুলিপি / পেস্ট করব:

আমাকে এখানে আরও একটি উত্তর যুক্ত করতে হয়েছিল কারণ আমি অন্যান্য সমাধানের ধাপগুলি দিয়ে যেতে চাই না। এটি অত্যন্ত সহজ এবং এতে কোনও এক্সটেনশন প্রয়োজন নেই, ইত্যাদি অন্তর্ভুক্ত এবং এটি আমার পছন্দ। এটি খুব সহজ এবং খুব দ্রুত।

প্রথমে কেবল প্রশ্নে ভেরিয়েবল json_encode করুন:

echo json_encode($theResult);

আপনি জেএসএন সম্পাদকে যে ফলাফলটি অনুলিপি করেছেন তা অনুলিপি করুন http://jsoneitoronline.org/ অনুলিপি করুন, কেবল এটিকে বাম পাশের ফলকে অনুলিপি করুন, অনুলিপি করুন> ক্লিক করুন এবং এটি জাসনকে একটি দুর্দান্ত গাছের বিন্যাসে প্রিন্ট করে।

প্রত্যেকের নিজেরাই, তবে আশা করি এটি অন্য কারও কাছে আরও একটি দুর্দান্ত বিকল্প পেতে সহায়তা করে! :)



-2

আমি একটি ফাংশন লিখেছি ( debug_display) যা প্রিন্ট করতে পারে, অ্যারে, অবজেক্টস এবং ফাইলের তথ্য সুন্দর উপায়ে।

<?php
function debug_display($var,$show = false) {
    if($show) { $dis = 'block'; }else { $dis = 'none'; }
    ob_start();
    echo '<div style="display:'.$dis.';text-align:left; direction:ltr;"><b>Idea Debug Method : </b>
        <pre>';
    if(is_bool($var)) {
        echo $var === TRUE ? 'Boolean(TRUE)' : 'Boolean(FALSE)';
    }else {
        if(FALSE == empty($var) && $var !== NULL && $var != '0') {
            if(is_array($var)) {
                echo "Number of Indexes: " . count($var) . "\n";
                print_r($var);
            } elseif(is_object($var)) {
                print_r($var);
            } elseif(@is_file($var)){
                $stat = stat($var);
                $perm = substr(sprintf('%o',$stat['mode']), -4);
                $accesstime = gmdate('Y/m/d H:i:s', $stat['atime']);
                $modification = gmdate('Y/m/d H:i:s', $stat['mtime']);
                $change = gmdate('Y/m/d H:i:s', $stat['ctime']);
                echo "
    file path : $var
    file size : {$stat['size']} Byte
    device number : {$stat['dev']}
    permission : {$perm}
    last access time was : {$accesstime}
    last modified time was : {$modification}
    last change time was : {$change}
    ";
            }elseif(is_string($var)) {
                print_r(htmlentities(str_replace("\t", '  ', $var)));
            }  else {
                print_r($var);
            }
        }else {
            echo 'Undefined';
        }
    }
    echo '</pre>
    </div>';
    $output = ob_get_contents();
    ob_end_clean();
    echo $output;
    unset($output);
}

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.