প্রতিটি শালীন পিএইচপি প্রোগ্রামার টি print_r
বা var_dump
মোড়কের তারা প্রেম ও বরাদ্দ শর্টকাট কী ব্যবহার করেন, কেন আমরা না আমাদের প্রিয় বেশী ভাগ ।
প্রতিটি শালীন পিএইচপি প্রোগ্রামার টি print_r
বা var_dump
মোড়কের তারা প্রেম ও বরাদ্দ শর্টকাট কী ব্যবহার করেন, কেন আমরা না আমাদের প্রিয় বেশী ভাগ ।
উত্তর:
এটি জিজ্ঞাসা করার পরে পুরো সময় এবং শ্রমের একটি সম্পূর্ণ বছর, আমি অবশেষে আমার ভার্সডাম্প, কিন্টের সংস্করণটি সন্ধান করেছি। এটা সম্পর্কে পড়ুন প্রকল্প পাতা , অথবা সরাসরি GitHub মধ্যে ।
এখানে একটি স্ক্রিনশট:
প্লাগের জন্য দুঃখিত :)
সম্পাদনা: আমি কেবল কমেন্টারদের মনে করিয়ে দিতে চাই, এটি কোনও সমর্থন ফোরাম নয়, যদি আপনার সমস্যা হয় / কোনও বৈশিষ্ট্য চান তবে দয়া করে একটি সমস্যা ফাইল করুন । সমর্থন অনুরোধ মন্তব্যগুলি মুছে ফেলার জন্য পতাকাঙ্কিত করা হবে।
Xdebug এক্সটেনশান দ্বারা সরবরাহিত হিসাবে আমার পছন্দটি হল var_dump
ফাংশন : কেবল এক্সটেনশনটি ইনস্টল করুন (উইন্ডোজ এবং লিনাক্স উভয় ক্ষেত্রেই সহজ) , এবং আরও ভাল আউটপুট পান:var_dump
এবং একটি দ্রুত স্ক্রিনশট:
এবং অবশ্যই, এক্সডিবাগ অন্যান্য দূরবর্তী ডিবাগিং (যেমন আপনার পিএইচপি অ্যাপ্লিকেশনটির গ্রাফিকাল ডিবাগিং, উদাহরণস্বরূপ অ্যাকলিপস পিডিটি-তে) এর মতো আরও অনেক দরকারী স্টাফ নিয়ে আসে , প্রোফাইলিং, ...
আমি আমার নিজস্ব লিখেছি: আরএফ ( ডেমো ):
পরিকল্পনাগুলি কেবল পাঠ্য-রেন্ডারিং যুক্ত করতে হবে এবং কীট এর মতো ইনপুট এক্সপ্রেশন সম্পর্কে তথ্য প্রদর্শন করবে ...
dll
আমি এই "ডিবাগ" ব্যবহার করব। ধন্যবাদ, এবং দুর্দান্ত কাজ!
এখানে আমার, যা আমি ইনলাইন ব্যবহার করি, খুব দরকারী:
$pretty = function($v='',$c=" ",$in=-1,$k=null)use(&$pretty){$r='';if(in_array(gettype($v),array('object','array'))){$r.=($in!=-1?str_repeat($c,$in):'').(is_null($k)?'':"$k: ").'<br>';foreach($v as $sk=>$vl){$r.=$pretty($vl,$c,$in+1,$sk).'<br>';}}else{$r.=($in!=-1?str_repeat($c,$in):'').(is_null($k)?'':"$k: ").(is_null($v)?'<NULL>':"<strong>$v</strong>");}return$r;};
echo $pretty($some_variable);
function pretty(){echo'<pre>';foreach(func_get_args()as $arg){ob_start();var_dump($arg);echo htmlentities(ob_get_clean())."\n#####\n#####\n\n";}die;}
। ভার_ডাম্প একটি খুব ভার্জোজ ফাংশন, এটি পিএইচপি সমস্ত প্রান্তের কেস পরিচালনা করে (যার মধ্যে অনেকগুলি রয়েছে) এবং এটি পাঠযোগ্য না হলেও 100% স্থিতিশীল। তবে দিনের শেষে, আপনি যদি মনে করেন যে আপনার বাস্তবায়নটি আপনার পক্ষে সবচেয়ে ভাল, তবে এটি অবশ্যই আপনার ব্যবহার করা উচিত।
আপনি ক্রমো ( সতর্কতা, ম্যালওয়ারের জন্য ক্রোম সতর্কতা ) খুঁজছেন।
এটি সহজভাবে বলতে গেলে, ক্রামো হ'ল প্রিন্ট_আর () এবং ভার_ডাম্প () এর প্রতিস্থাপন। সংজ্ঞা অনুসারে ক্রোমো একটি ডিবাগিং সরঞ্জাম (প্রাথমিকভাবে পিএইচপি 4 / পিএইচপি 5 এর জন্য এখন কেবলমাত্র পিএইচপি 5 এর জন্য), যা কোনও পিএইচপি ভেরিয়েবল সম্পর্কে কাঠামোগত তথ্য প্রদর্শন করে।
আমি ফায়ারফপ প্লাস ফায়ারব্যাগ পছন্দ করি
আমি ডিবাগ ব্যবহার করছি, যা কোল্ডফিউজনের দুর্দান্ত cfdump
ট্যাগটি অনুকরণ করে :
এর জন্য আমার (আংশিক) সমাধানটি হ'ল এইভাবে কোনও ফাংশন যুক্ত করুন (গুগল ক্রোম ব্যবহার করে):
<?
function console_dump($value)
{
?>
<script>
console.log(<? echo json_encode($value); ?>);
</script>
<?
}
?>
Ctrl + Shift + J টিপুন (কনসোল খোলে), এবং আপনি সেখানে JSON কাঠামো খুঁজে পেতে পারেন। অবশ্যই JSON প্রতিক্রিয়াগুলি অবশ্যই একটি দুর্দান্ত মুদ্রণের জন্য আরও কার্যকর more
আমি যা ব্যবহার করি তার একটি সম্পূর্ণ উদাহরণ ...
<pre>
<?php
//*********** Set up some sample data
$obj = new stdClass;
$obj->a=123;
$obj->pl=44;
$obj->l=array(31,32);
$options = array(
'Orchestra'=>array(1=>'Strings', 8=>'Brass', 9=>$obj, 3=>'Woodwind', 16=>'Percussion'),
2=>'Car',
4=>'Bus',
'TV'=>array(21=>'Only Fools', 215=>'Brass Eye', 23=>'Vic Bob',44=>null, 89=>false));
//*********** Define the function
function dump($data, $indent=0) {
$retval = '';
$prefix=\str_repeat(' | ', $indent);
if (\is_numeric($data)) $retval.= "Number: $data";
elseif (\is_string($data)) $retval.= "String: '$data'";
elseif (\is_null($data)) $retval.= "NULL";
elseif ($data===true) $retval.= "TRUE";
elseif ($data===false) $retval.= "FALSE";
elseif (is_array($data)) {
$retval.= "Array (".count($data).')';
$indent++;
foreach($data AS $key => $value) {
$retval.= "\n$prefix [$key] = ";
$retval.= dump($value, $indent);
}
}
elseif (is_object($data)) {
$retval.= "Object (".get_class($data).")";
$indent++;
foreach($data AS $key => $value) {
$retval.= "\n$prefix $key -> ";
$retval.= dump($value, $indent);
}
}
return $retval;
}
//*********** Dump the data
echo dump($options);
?>
</pre>
ফলাফল ...
Array (4)
[Orchestra] = Array (5)
| [1] = String: 'Strings'
| [8] = String: 'Brass'
| [9] = Object (stdClass)
| | a -> Number: 123
| | pl -> Number: 44
| | l -> Array (2)
| | | [0] = Number: 31
| | | [1] = Number: 32
| [3] = String: 'Woodwind'
| [16] = String: 'Percussion'
[2] = String: 'Car'
[4] = String: 'Bus'
[TV] = Array (5)
| [21] = String: 'Only Fools'
| [215] = String: 'Brass Eye'
| [23] = String: 'Vic Bob'
| [44] = NULL
| [89] = FALSE
আমারটা এখানে:
class sbwDebug
{
public static function varToHtml($var = '', $key = '')
{
$type = gettype($var);
$result = '';
if (in_array($type, ['object', 'array'])) {
$result .= '
<table class="debug-table">
<tr>
<td class="debug-key-cell"><b>' . $key . '</b><br/>Type: ' . $type . '<br/>Length: ' . count($var) . '</td>
<td class="debug-value-cell">';
foreach ($var as $akey => $val) {
$result .= sbwDebug::varToHtml($val, $akey);
}
$result .= '</td></tr></table>';
} else {
$result .= '<div class="debug-item"><span class="debug-label">' . $key . ' (' . $type . '): </span><span class="debug-value">' . $var . '</span></div>';
}
return $result;
}
}
স্টাইলযুক্ত:
table.debug-table {
padding: 0;
margin: 0;
font-family: arial,tahoma,helvetica,sans-serif;
font-size: 11px;
}
td.debug-key-cell {
vertical-align: top;
padding: 3px;
border: 1px solid #AAAAAA;
}
td.debug-value-cell {
vertical-align: top;
padding: 3px;
border: 1px solid #AAAAAA;
}
div.debug-item {
border-bottom: 1px dotted #AAAAAA;
}
span.debug-label {
font-weight: bold;
}
sbwDebug
সে ক্লাস তৈরি করতে হবে যা তিনি পোস্ট করতে ভুলে গিয়েছিলেন এবং এতে ফাংশনটি রেখেছিলেন।
আমি লাইব্রেরি, প্রি ট্যাগ এবং প্রতিটি অ্যাপ্লিকেশনটিতে কোনও ইনস্টলেশন না করে আমার ভার ডাম্পগুলিকে সুন্দর করার জন্য সম্প্রতি একটি ফ্রি ক্রোম এক্সটেনশন (প্রগতিতে কাজ করা) তৈরি করেছি। সমস্ত জাভাস্ক্রিপ্ট এবং regEx দিয়ে সম্পন্ন। আপনাকে যা করতে হবে তা হ'ল এক্সটেনশানটি ইনস্টল করা এবং আপনার যা করা ভাল। আমি ফায়ারফক্স সংস্করণেও কাজ করছি। এখানে গিটহাব পৃষ্ঠাটি রয়েছে। আমি আশা করি শীঘ্রই এটি ক্রোম এবং ফায়ারফক্স ওয়েবস্টোরগুলিতে উপলব্ধ হবে!
https://github.com/alexnaspo/var_dumpling
এখানে একটি উদাহরণ আউটপুট:
ট্রেসির ডাম্প () ফাংশনটি ব্যবহার করে একটি সুন্দর কলাপযোগ্য আউটপুট রয়েছে ।
ওসব শিরোনাম বাদে অভিনব লাইব্রেরিগুলি দুর্দান্ত ... আপনি যদি একটি সাধারণ, চমত্কার var_dump চান যা অসীম পরামিতি নেয় তবে আমার ফাংশনটি চেষ্টা করুন। এটি কিছু সাধারণ এইচটিএমএল যুক্ত করে। ডেটা বৈশিষ্ট্যগুলিও যুক্ত করা হয়, আপনি যদি এইচটিএমএল 5 ব্যবহার করেন তবে নিম্ন সংস্করণগুলি এগুলি উপেক্ষা করবে তবে ব্রাউজার কনসোলে উপাদান খুলতে সহজ করে তোলে এবং আপনি স্ক্রিনে যা দেখেন তা যথেষ্ট না হলে আরও কিছু তথ্য পাওয়া যায়।
লেআউটটি খুব সাধারণ, কোনও ওভারহেড নেই। প্রতিটি প্যারামিটারের জন্য অবজেক্ট ডাম্পের (এমনকি এক্সএমএল সহ) নাম gettype
এমনকি জিনিস সহ একাধিক তথ্য সরবরাহ করে class
। এটি চেষ্টা এবং সত্য, আমি বছরের পর বছর ধরে এটি ব্যবহার করে আসছি।
function preDump() { // use string "noEcho" to just get a string return only
$args = func_get_args();
$doEcho = TRUE; $sb;
if ($args) {
$sb = '<div style="margin: 1em 0;"><fieldset style="display:inline-block;padding:0em 3em 1em 1em;"><legend><b>preDump: '.count($args).' Parameters Found.</b></legend>';
foreach (func_get_args() as $arg) {
if (gettype($arg) == 'string') if ($arg == 'noEcho') { $doEcho = FALSE; $sb = preg_replace('/(preDump: )[0-9]+/', 'preDump: '.(count($args)-1), $sb); continue; }
$sb .= '<pre data-type="'.gettype($arg).'"';
switch (gettype($arg)) {
case "boolean":
case "integer":
$sb .= ' data-dump="json_encode"><p style="border-bottom:1px solid;margin:0;padding:0 0 0 1em;"><b>gettype('.gettype($arg).')</b></p><p>';
$sb .= json_encode($arg);
break;
case "string":
$sb .= ' data-dump="echo"><p style="border-bottom:1px solid;margin:0;padding:0 0 0 1em;"><b>gettype('.gettype($arg).')</b></p><p>';
$sb .= $arg;
break;
default:
$sb .= ' data-dump="var_dump"';
if (is_object($arg)) $sb .= 'data-class="'.get_class($arg).'"';
$sb .= '><p style="border-bottom:1px solid;margin:0;padding:0 0 0 1em;"><b>gettype('.gettype($arg).')';
if (is_object($arg)) $sb .= ' ['.get_class($arg).']';
$sb .= '</b></p><p>';
ob_start();
var_dump($arg);
$sb .= ob_get_clean();
if (ob_get_length()) ob_end_clean();
}
$sb .= '</p></pre>';
}
$sb .= '</fieldset></div>';
}
else {
$sb = '<div style="margin: 1em 0;"><fieldset style="display:inline-block;"><legend><b>preDump: [ERROR]</b></legend><h3>No Parameters Found</h3></fieldset></div>';
}
if ($doEcho) echo($sb);
return $sb;
}
এবং আপনি যদি কোডইনিটার ব্যবহার করেন তবে এটিকেও আপনার সিআই অতিমাত্রায় যুক্ত করুন। প্রথমে যান application/config/autoload.php
এবং নিশ্চিত হয়ে নিন যে helper
'string'
এটি চালু আছে।
$autoload['helper'] = array( 'string' );
তারপর কেবল নামে একজন ফাইল তৈরি হয়ে যেতে MY_string_helper.php
মধ্যে application/helpers
একটি টিপিক্যাল ফাংশন সন্নিবেশ এবং সহজ if
অস্তিত্ব চেক জন্য বিবৃতি।
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
if (!function_exists('preDump')) {
function preDump() {
...
}
}
// DON'T CLOSE PHP
| OR |, আপনি যদি এটি অন্য কোনও দিক নিতে চান।
নীচের স্নিপেটটি উপরের মতোই, ব্রাউজার কনসোলে আপনার ভেরিয়েবলগুলি প্রদর্শন করবে except এটি কখনও কখনও এসকিএল অবজেক্ট কলগুলি এবং অন্যান্য অ্যারে এবং অবজেক্ট কলগুলি যেখানে আপনার মূল নাম বা যেকোন কিছু অনুপস্থিত তা ডিবাগ করা সহজ করে তুলতে পারে।
function consoleDump() { // use string "noEcho" to just get a string return only
$args = func_get_args();
$doEcho = TRUE; $sb;
if ($args) {
$sb = '<script type="text/javascript">console.log("<" + new Array('.(count($args) < 10 ? '49': '48').').join("-") + "[consoleDump: '.count($args).' items]" + new Array(50).join("-") + ">"); console.log([';
foreach (func_get_args() as $i => $arg) {
if (gettype($arg) == 'string') if ($arg == 'noEcho') { $doEcho = FALSE; $sb = preg_replace('/(consoleDump: )[0-9]+/', 'consoleDump: '.(count($args)-1), $sb); continue; }
$sb .= '{ "type": "'.gettype($arg).'", ';
switch (gettype($arg)) {
case "boolean":
case "integer":
case "string":
$sb .= '"value": '.json_encode($arg);
break;
default:
$sb .= '"value": '.json_encode($arg);
if (is_object($arg) || is_array($arg)) $sb .= ', "count": '.json_encode(count((array)$arg));
if (is_object($arg)) $sb .= ', "objectClass": "'.get_class($arg).'"';
}
$sb .= '}';
if ($i < count($args)-1) $sb .= ', ';
}
$sb .= ']); console.log("<" + new Array(120).join("-") + ">"); </script>';
}
else {
$sb = '<script type="text/javascript">console.log("<" + new Array(120).join("-") + ">");console.log("consoleDump: [ERROR] No Parameters Found");console.log("<" + new Array(120).join("-") + ">");</script>';
}
if ($doEcho) echo($sb);
return $sb;
}
সবকিছু নিয়ে কাজ করে!
consoleDump($simpXMLvar, $_SESSION, TRUE, NULL, array( 'one' => 'bob', 'two' => 'bill' ), (object)array( 'one' => 'bob', 'two' => 'bill' ));
<------------------------------------------------[consoleDump: 6 items]------------------------------------------------->
[Object, Object, Object, Object, Object, Object]
// This drops down to show your variables in JS objects, like:
0: Object
count: 4
objectClass: "SimpleXMLElement"
type: "object"
value: Object
__proto__: Object
// ...etc...
<----------------------------------------------------------------------------------------------------------------------->
echo '<pre>';var_dump($var);echo '</pre>';
আরও কিছু শূন্য-মান যুক্ত পাঠ্য।
preDump('value', TRUE, array( 'bob => 'bill' ), (object)array( 'bob => 'bill' )' is quick and easy and gives a nice layout visually in the browser that shows each variable passed in it's own "area" with a type label, thus making debugging quick and easy. And since it's a snippet i keep in my IDE's toolbox, i can recall it with ease on any needed page or while working with any library. But sure, it's just an
ইকো 'প্রে' বাদে ; এর আশেপাশের কয়েকটি সহ var_dump` simple html
, 0-মান-যোগ করার পাঠ্য নয়। লোল কিক আপনি যদি এটি পছন্দ না করেন তবে এটি ব্যবহার করবেন না। শুধু একটি পরামর্শ।
পিএইচপি অ্যারে বিউটিফায়ার এই সাধারণ সরঞ্জামটি পিএইচপি-তে একটি অ্যারে বা অবজেক্ট আউটপুট নেয় যেমন একটি মুদ্রণ_আর () বিবৃতি এবং সহজেই আপনার ডেটা পড়তে রঙিন কোডিংয়ে ফর্ম্যাট করে। http://phillihp.com/toolz/php-array-beautifier/
তবুও অন্য একটি বাড়ির সংস্করণ:
http://github.com/perchten/neat_html
আমি এটি বেশ নমনীয় মনে করতে চাই। এটি নির্দিষ্ট আউটপুট পরিবেশের জন্য লক্ষ্য রাখে না তবে আউটপুট / মুদ্রণ বা আচরণের পাশাপাশি কিছু অবিচ্ছিন্ন সেটিংস কেন পরিবর্তন করতে হবে তা আপনি নির্দিষ্ট করতে পারেন optionচ্ছিক যুক্তিগুলির একটি গুচ্ছ।
এই সমস্যাটি সমাধান করার জন্য আমি এখানে একটি ক্রোম এক্সটেনশান লিখেছি।
https://chrome.google.com/webstore/detail/varmasterpiece/chfhddogiigmfpkcmgfpolalagdcamkl
আমি var_dumps সুন্দরী করার জন্য একটি ক্রোম এক্সটেনশন এবং jquery প্লাগইন তৈরি করেছি
আপনি যদি পিএইচপি-তে খুব বড় অ্যারে নিয়ে কাজ করেন তবে এই ফাংশনটি সাহায্য করতে পারে:
function recursive_print ($varname, $varval) {
if (! is_array($varval)):
print $varname . ' = ' . var_export($varval, true) . ";<br>\n";
else:
print $varname . " = array();<br>\n";
foreach ($varval as $key => $val):
recursive_print ($varname . "[" . var_export($key, true) . "]", $val);
endforeach;
endif;
}
এটি মূলত পুরো অ্যারেটি ডাম্প করে যেখানে প্রতিটি উপাদান পৃথক লাইনে থাকে যা নির্দিষ্ট উপাদানগুলির জন্য সঠিক পুরো পথগুলি সন্ধান করার জন্য উপকারী।
উদাহরণ আউটপুট:
$a = array();
$a[0] = 1;
$a[1] = 2;
$a[2] = array();
$a[2][0] = 'a';
$a[2][1] = 'b';
$a[2][2] = 'c';
দেখুন: প্রতিটি কী-মান জুটি পৃথক লাইনে থাকা পিএইচপি অ্যারে কীভাবে রফতানি করবেন?
আমি অবাক হয়েছি কেউই সবচেয়ে সহজ (যদিও খুব সুন্দর না) কোডটি উল্লেখ করেনি। আপনি শুধুমাত্র একটি পাঠযোগ্য আউটপুট (কোন রং বা খাঁজ), একটি সহজ পেতে চান <pre>
একটি প্রায় var_dump
হিসাবে কাজ,:
echo "<pre>";
var_dump($myvariable);
echo "</pre>";
এর চেয়ে অনেক কম ওভারহেড পাওয়া যায় না!
আমি ক্রমোর মতোই একটি ছোট ক্লাস লিখেছি তবে অ্যাপে এম্বেড করা আরও সহজ।
এখানে লিঙ্কটি দেওয়া হয়েছে: https://github.com/langpavel/PhpSkelet/blob/master/Class/Debug.php
এবং এখানে নমুনা আউটপুট: http://langpavel.php5.cz/debug_sample.html
আমার পছন্দেরটি https://github.com/hazardland/debug.php থেকে ডিবাগ করা হয়েছে যা কেবলমাত্র একক ফাংশনযুক্ত ডিবাগ নামে লাইব্রেরি রয়েছে (আপনি কেবলমাত্র আপনার প্রকল্পে বা আপনার লাইব্রেরিতে সেই ফাংশনটি অনুলিপি করতে পারেন) । টিপিকাল ডিবাগ () এইচটিএমএল আউটপুটটি এর মতো দেখাচ্ছে:
তবে আপনি এই জাতীয় ফাংশন (4 স্পেস ইনডেন্টড ট্যাব সহ) সমেত পাঠ্য হিসাবে ডেটা আউটপুট করতে পারেন (এবং প্রয়োজনে এটি ফাইলটিতে লগও করুন):
string : "Test string"
boolean : true
integer : 17
float : 9.99
array (array)
bob : "alice"
1 : 5
2 : 1.4
object (test2)
another (test3)
string1 : "3d level"
string2 : "123"
complicated (test4)
enough : "Level 4"
এটি একটি দুর্দান্ত সরঞ্জাম যা বগী পিএইচপি ফাংশন প্রতিস্থাপনের উদ্দেশ্যে var_dump
এবং print_r
এটি একটি জটিল অবকাঠামো কাঠামোয় পুনরাবৃত্তভাবে রেফারেন্স করা অবজেক্টগুলিকে সঠিকভাবে সনাক্ত করতে পারে। কিছু অদ্ভুত ভেরিয়েবলের অনির্দিষ্ট পুনরাবৃত্তি প্রদর্শন এড়াতে এটির পুনরাবৃত্ত গভীরতা নিয়ন্ত্রণও রয়েছে।
দেখুন: TVarDumper.php
।
অন্যান্য বিকল্প সমাধানগুলির জন্য যা আরও বেশি সুবিধাদি সরবরাহ করে var_dump
এবং print_r
বিজ্ঞপ্তি সংক্রান্ত রেফারেন্সগুলিকে সমর্থন করতে পারে, দয়া করে পরীক্ষা করুন: বিজ্ঞপ্তি রেফারেন্স সহ print_r এবং var_dump ব্যবহার করুন ।
আরও ধারণাগুলির জন্য এটিও দেখুন: আপনি কীভাবে পিএইচপি স্ক্রিপ্টগুলি ডিবাগ করবেন?
খনি, আরও সহজ, আমার কাছে আমার অবকাঠামো ইনস্টল করার জন্য xdebug ইত্যাদির অনেক জ্ঞান / সময় নেই etc.
এবং অন্যান্য ক্ষেত্রে, ভাল উদাহরণস্বরূপ আপনার জন্য একটি সহজ ডাব্লুপি ওয়েবসাইটের জন্য খুব বেশি প্রয়োজন নেই
সুতরাং আমি ব্যবহার:
highlight_string("\n<?" . var_export($var, true) . "?>\n");
এটা সত্যিই আমাকে অনেক সাহায্য করে
তবে আমি ডিভনসনোল এনভায়রনমেন্টকে প্রাধান্য দেওয়ার কারণে আমি এই দুর্দান্ত কিন্তু সাধারণ ফাংশনটি ব্যবহার করি:
https://codeinphp.github.io/post/outputting-php-to-browser-console/
সামান্য ত্বক:
<?php
/**
* Logs messages/variables/data to browser console from within php
*
* @param $name: message to be shown for optional data/vars
* @param $data: variable (scalar/mixed) arrays/objects, etc to be logged
* @param $jsEval: whether to apply JS eval() to arrays/objects
*
* @return none
* @author Sarfraz
*/
function logConsole($name, $data = NULL, $jsEval = FALSE)
{
if (! $name) return false;
$isevaled = false;
$type = ($data || gettype($data)) ? 'Type: ' . gettype($data) : '';
if ($jsEval && (is_array($data) || is_object($data)))
{
$data = 'eval(' . preg_replace('#[\s\r\n\t\0\x0B]+#', '', json_encode($data)) . ')';
$isevaled = true;
}
else
{
$data = json_encode($data, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES);
}
# sanitalize
$data = $data ? $data : '';
$search_array = array("#'#", '#""#', "#''#", "#\n#", "#\r\n#");
$replace_array = array('"', '', '', '\\n', '\\n');
$data = preg_replace($search_array, $replace_array, $data);
$data = ltrim(rtrim($data, '"'), '"');
$data = $isevaled ? $data : ($data[0] === "'") ? $data : "'" . $data . "'";
$js = <<<JSCODE
\n<script>
// fallback - to deal with IE (or browsers that don't have console)
if (! window.console) console = {};
console.log = console.log || function(name, data){};
// end of fallback
console.log('===== PHP Dump =====');
console.log('$name');
console.log('$type');
console.log($data);
console.log('===== / PHP Dump =====');
console.log('\\n');
</script>
JSCODE;
echo $js;
} # end logConsole
আমাকে এখানে আরও একটি উত্তর যুক্ত করতে হয়েছিল কারণ আমি অন্যান্য সমাধানের ধাপগুলি দিয়ে যেতে চাই না। এটি অত্যন্ত সহজ এবং এতে কোনও এক্সটেনশন প্রয়োজন নেই, ইত্যাদি অন্তর্ভুক্ত এবং এটি আমার পছন্দ। এটি খুব সহজ এবং খুব দ্রুত।
প্রথমে কেবল প্রশ্নে ভেরিয়েবল json_encode করুন:
echo json_encode($theResult);
আপনি জেএসএন সম্পাদকে যে ফলাফলটি অনুলিপি করেছেন সেটিকে অনুলিপি করুন : http://jsoneitoronline.org/ এ কেবল বাম পাশের ফলকে অনুলিপি করুন, অনুলিপি করুন> এ ক্লিক করুন এবং এটি জাসনকে একটি দুর্দান্ত গাছের বিন্যাসে প্রিন্ট করে।
প্রত্যেকের নিজেরাই, তবে আশা করি এটি অন্য কারও কাছে আরও একটি দুর্দান্ত বিকল্প পেতে সহায়তা করে! :)