क्या यह एक स्ट्रिंग लिखना संभव है या कंसोल में लॉग इन करना है?
मेरा मतलब
जेएसपी की तरह, अगर हम कुछ ऐसा प्रिंट करते हैं system.out.println("some")
, तो यह एक पृष्ठ पर नहीं बल्कि कंसोल पर होगा।
क्या यह एक स्ट्रिंग लिखना संभव है या कंसोल में लॉग इन करना है?
जेएसपी की तरह, अगर हम कुछ ऐसा प्रिंट करते हैं system.out.println("some")
, तो यह एक पृष्ठ पर नहीं बल्कि कंसोल पर होगा।
जवाबों:
फ़ायरफ़ॉक्स
फ़ायरफ़ॉक्स पर आप FirePHP नामक एक एक्सटेंशन का उपयोग कर सकते हैं जो आपके PHP अनुप्रयोगों से कंसोल तक जानकारी को लॉग करने और डंप करने में सक्षम बनाता है। यह भयानक वेब विकास विस्तार फायरबग का एक ऐडऑन है ।
क्रोम
हालाँकि, यदि आप क्रोम का उपयोग कर रहे हैं, तो क्रोम लॉगर या वेबग नामक एक PHP डिबगिंग टूल है (वेबग में लॉग्स के क्रम में समस्याएं हैं)।
हाल ही में क्लॉकवर्क सक्रिय विकास में है जो उपयोगी डिबगिंग और प्रोफाइलिंग जानकारी प्रदान करने के लिए एक नया पैनल जोड़कर डेवलपर टूल्स का विस्तार करता है। यह लारावेल 4 और स्लिम 2 के लिए बॉक्स समर्थन से बाहर प्रदान करता है और इसके एक्स्टेंसिबल एपीआई के माध्यम से समर्थन जोड़ा जा सकता है।
Xdebug का उपयोग करना
अपने PHP को डिबग करने का एक बेहतर तरीका Xdebug के माध्यम से होगा । डीबगिंग प्रक्रिया प्रारंभ करने के लिए आवश्यक कुकी / क्वेरी स्ट्रिंग पास करने के लिए अधिकांश ब्राउज़र सहायक एक्सटेंशन प्रदान करते हैं।
या आप कंसोल को PHP डीबग से ट्रिक का उपयोग करते हैं ।
पहले आपको थोड़ा PHP हेल्पर फ़ंक्शन की आवश्यकता है
function debug_to_console($data) {
$output = $data;
if (is_array($output))
$output = implode(',', $output);
echo "<script>console.log('Debug Objects: " . $output . "' );</script>";
}
तो आप इसे इस तरह से उपयोग कर सकते हैं:
debug_to_console("Test");
यह इस तरह से एक आउटपुट तैयार करेगा:
Debug Objects: Test
"Debug Objects: " . $data . ""
$data
आउटपुट में प्रकट होता है, तो आपने फ़ंक्शन को ठीक से नहीं दिखाया गया है। अपने एकल और दोहरे उद्धरणों को ध्यान से देखें, यह सुनिश्चित करने के लिए कि वे ऊपर दिए गए कोड से मेल खाते हैं। $data
एक php वेरिएबल है; जब तक पृष्ठ को ब्राउज़र में भेजा जाता है, तब तक php वैरिएबल को पास किए गए पैरामीटर द्वारा बदल दिया जाएगा debug_to_console
। ब्राउज़र को कभी नहीं देखना चाहिए $data
। (यदि आप page source
ब्राउज़र में देखते हैं, तो यह नहीं कहना चाहिए $data
।)
यदि आप एक सरल दृष्टिकोण की तलाश कर रहे हैं, तो JSON के रूप में प्रतिध्वनित करें:
<script>
console.log(<?= json_encode($foo); ?>);
</script>
function debug_log( $object=null, $label=null ){ $message = json_encode($object, JSON_PRETTY_PRINT); $label = "Debug" . ($label ? " ($label): " : ': '); echo "<script>console.log(\"$label\", $message);</script>"; }
डिफ़ॉल्ट रूप से, सभी आउटपुट में जाता है stdout
, जो कि HTTP प्रतिक्रिया या कंसोल है, जो इस बात पर निर्भर करता है कि आपकी स्क्रिप्ट Apache द्वारा संचालित है या मैन्युअल रूप से कमांड लाइन पर। लेकिन आप error_log
लॉगिंग के लिए उपयोग कर सकते हैं और विभिन्न I / O स्ट्रीम के साथ लिखा जा सकता है fwrite
।
error_log
क्या मैं PHP में निर्मित वेब सर्वर
निम्नलिखित का प्रयास करें। यह काम कर रहा है:
echo("<script>console.log('PHP: " . $data . "');</script>");
echo
"<div display='none'>
<script type='text/javascript'>
console.log('console log message');
</script>
</div>";
बनाता है a
<div>
उसके साथ
display="none"
ताकि div प्रदर्शित न हो, लेकिन
console.log()
फ़ंक्शन जावास्क्रिप्ट में बनाया गया है। इसलिए आपको संदेश कंसोल में मिलता है।
div
। यदि आपके पास बस एक <script>
ब्लॉक है, तो ब्राउज़र में कुछ भी प्रदर्शित नहीं किया जाएगा।
json.encode
ताकि उद्धरण चिह्न आपके कोड की रेखा को न तोड़ें। उदाहरण के लिए:echo "<script>console.log(".json_encode($msg).")</script>";
लोकप्रिय उत्तर में लिंक किए गए वेबपेज के लेखक के रूप में , मैं इस सरल सहायक फ़ंक्शन के अपने अंतिम संस्करण को जोड़ना चाहूंगा। यह बहुत अधिक ठोस है।
json_encode()
यदि चर प्रकार आवश्यक नहीं है और फ्रेमवर्क के साथ समस्याओं को हल करने के लिए एक बफर भी जोड़ते हैं, तो मैं इसके लिए एक जांच करने के लिए उपयोग करता हूं । इसका ठोस प्रतिफल या अत्यधिक उपयोग नहीं है header()
।
/**
* Simple helper to debug to the console
*
* @param $data object, array, string $data
* @param $context string Optional a description.
*
* @return string
*/
function debug_to_console($data, $context = 'Debug in Console') {
// Buffering to solve problems frameworks, like header() in this and not a solid return.
ob_start();
$output = 'console.info(\'' . $context . ':\');';
$output .= 'console.log(' . json_encode($data) . ');';
$output = sprintf('<script>%s</script>', $output);
echo $output;
}
// $data is the example variable, object; here an array.
$data = [ 'foo' => 'bar' ];
debug_to_console($data);`
इसे आसान समझने के लिए छवि के रूप में भी एक सरल उदाहरण:
मुझे लगता है कि इसका इस्तेमाल किया जा सकता है -
function jsLogs($data) {
$html = "";
$coll;
if (is_array($data) || is_object($data)) {
$coll = json_encode($data);
} else {
$coll = $data;
}
$html = "<script>console.log('PHP: ${coll}');</script>";
echo($html);
# exit();
}
# For String
jsLogs("testing string"); #PHP: testing string
# For Array
jsLogs(array("test1", "test2")); # PHP: ["test1","test2"]
# For Object
jsLogs(array("test1"=>array("subtest1", "subtest2"))); #PHP: {"test1":["subtest1","subtest2"]}
कुछ महान उत्तर जो अधिक गहराई जोड़ते हैं; लेकिन मुझे जावास्क्रिप्ट console.log()
कमांड की तरह कुछ सरल और अधिक की आवश्यकता थी ।
मैं अजाक्स अनुप्रयोगों में "बहुत सारे डेटा इकट्ठा करने और एक्सएमएल में बारी" में PHP का उपयोग करता हूं। जावास्क्रिप्ट console.log
उस मामले में काम नहीं करता है; यह XML आउटपुट को तोड़ता है।
Xdebug, आदि के समान मुद्दे थे।
विंडोज में मेरा समाधान:
.txt
फाइल को सेट करें जो कुछ आसानी से और लिखने योग्य होerror_log
चर सेट करें.ini
फ़ाइल को लिखने के लिए फ़ाइलerror_log('myTest');
संदेश भेजने के लिए PHP कमांड का उपयोग करेंयह समाधान सरल है और ज्यादातर समय मेरी जरूरतों को पूरा करता है। मानक PHP और पूर्वावलोकन फलक स्वचालित रूप से हर बार अद्यतन करता है जब PHP इसे लिखता है।
json_encode
भी समस्या हल हो जाएगी? यदि हां, तो यह हो सकता है कि स्क्रिप्ट में उद्धरण चिह्नों के साथ हस्तक्षेप किए गए संदेश के भीतर उद्धरण चिह्न। (उदाहरण के लिए:) echo "<script>console.log(".json_encode($msg).")</script>";
। यदि नहीं, तो मैं उत्सुक हूं कि क्या मुद्दा था जो कंसोल.लॉग स्क्रिप्ट को तोड़ने का कारण बना, और आपके समाधान ने कैसे / क्यों तय किया। आपका समाधान अच्छा है - मैं सिर्फ उन स्थितियों के बारे में अधिक जानने की कोशिश कर रहा हूं जिनके कारण console.log
या xml आउटपुट टूट गया है। कई मामलों में, आपके द्वारा किया गया एक त्रुटि लॉग एक त्वरित की तुलना में बहुत बेहतर है console.log
।
$variable = "Variable";
echo "<script>console.log('$variable');</script>";
PHP और जावास्क्रिप्ट बातचीत।
मुझे यह मददगार लगता है:
function console($data, $priority, $debug)
{
if ($priority <= $debug)
{
$output = '<script>console.log("' . str_repeat(" ", $priority-1) . (is_array($data) ? implode(",", $data) : $data) . '");</script>';
echo $output;
}
}
और इसका उपयोग करें:
<?php
$debug = 5; // All lower and equal priority logs will be displayed
console('Important', 1 , $debug);
console('Less Important', 2 , $debug);
console('Even Less Important', 5 , $debug);
console('Again Important', 1 , $debug);
?>
कंसोल में कौन से आउटपुट:
Important Less Important Even Less Important Again Important
और आप $ डिबग मूल्य का उपयोग करके उन्हें कम महत्वपूर्ण लॉग को बंद कर सकते हैं।
console('Even Less Important' ,6 , $debug);
यह कंसोल में प्रदर्शित नहीं किया जाएगा? ऐसा क्यों? 5 से ऊपर कुछ भी नहीं है
$output = '<script>console.log("' . str_repeat(" ", $priority-1)
और . '");</script>';
। केवल implode(",", $data)
और $data
अलग है।
ऐरे, स्ट्रिंग्स या ऑब्जेक्ट्स के लिए लघु और आसान।
function console_log( $data ) {
$output = "<script>console.log( 'PHP debugger: ";
$output .= json_encode(print_r($data, true));
$output .= "' );</script>";
echo $output;
}
function phpconsole($label='var', $x) {
?>
<script type="text/javascript">
console.log('<?php echo ($label)?>');
console.log('<?php echo json_encode($x)?>');
</script>
<?php
}
यदि आप PHP लॉग फ़ाइल में लिखना चाहते हैं, और जावास्क्रिप्ट कंसोल नहीं तो आप इसका उपयोग कर सकते हैं:
error_log("This is logged only to the PHP log")
संदर्भ: error_log
क्रोम के लिए क्रोम लॉगर नाम का एक एक्सटेंशन है PHP संदेशों को लॉग इन करने की अनुमति देता है।
फ़ायरफ़ॉक्स DevTools में भी क्रोम लकड़हारा प्रोटोकॉल के लिए एकीकृत समर्थन है ।
लॉगिंग को सक्षम करने के लिए, आपको बस अपने प्रोजेक्ट में 'ChromePhp.php' फ़ाइल को सहेजना होगा । तो यह इस तरह इस्तेमाल किया जा सकता है:
include 'ChromePhp.php';
ChromePhp::log('Hello console!');
ChromePhp::log($_SERVER);
ChromePhp::warn('something went wrong!');
उदाहरण GitHub पृष्ठ से लिया गया है ।
आउटपुट तब इस तरह दिख सकता है:
"ccampbell/chromephp": "*"
PHP लाइब्रेरी के साथ एक शानदार Google Chrome एक्सटेंशन, PHP कंसोल भी है , जो आपको अनुमति देता है:
error file:line
अपने टेक्स्ट एडिटर में कूदें ।मैं एक वर्डप्रेस प्लगइन में कोड को डिबग करने का एक तरीका ढूंढ रहा था जिसे मैं विकसित कर रहा था और इस पोस्ट के पार आया था।
मैंने उन कोड के बिट्स ले लिए जो अन्य प्रतिक्रियाओं से मेरे लिए सबसे अधिक लागू होते हैं और इन्हें एक ऐसे फंक्शन में मिलाया जाता है जिसका उपयोग मैं वर्डप्रेस को डिबग करने के लिए कर सकता हूं। समारोह है:
function debug_log($object=null, $label=null, $priority=1) {
$priority = $priority<1? 1: $priority;
$message = json_encode($object, JSON_PRETTY_PRINT);
$label = "Debug" . ($label ? " ($label): " : ': ');
echo "<script>console.log('" . str_repeat("-", $priority-1) . $label . "', " . $message . ");</script>";
}
उपयोग निम्नानुसार है:
$txt = 'This is a test string';
$sample_array = array('cat', 'dog', 'pig', 'ant', 'fly');
debug_log($txt, '', 7);
debug_log($sample_array);
यदि इस फ़ंक्शन का उपयोग वर्डप्रेस विकास के साथ किया जाता है, तो फ़ंक्शन को functions.php
चाइल्ड थीम की फ़ाइल में रखा जाना चाहिए और फिर कोड में कहीं भी बुलाया जा सकता है।
मैंने डिबगर और लॉगर के पक्ष में उपरोक्त सभी को छोड़ दिया है । मैं इसकी पर्याप्त प्रशंसा नहीं कर सकता!
बस ऊपर दाईं ओर स्थित किसी एक टैब पर क्लिक करें, या विस्तार / छिपाने के लिए "यहां क्लिक करें" पर।
विभिन्न "श्रेणियों" पर ध्यान दें। आप इसे विस्तृत / संक्षिप्त करने के लिए किसी भी सरणी पर क्लिक कर सकते हैं।
वेब पेज से
मुख्य विशेषताएं:
- ग्लोबल्स चर दिखाएं ($ GLOBALS, $ _POST, $ _GET, $ _COOKIE, आदि)
- PHP संस्करण और लोडेड एक्सटेंशन दिखाएं
- त्रुटि हैंडलर में निर्मित PHP को बदलें
- SQL क्वेरी लॉग करें
- मॉनिटर कोड और SQL क्वेरीज़ का निष्पादन समय
- परिवर्तनों के लिए चर का निरीक्षण करें
- फ़ंक्शन कॉल ट्रेसिंग
- कोड कवरेज विश्लेषण यह जांचने के लिए कि स्क्रिप्ट की कौन सी लाइनें कहाँ निष्पादित हुई हैं
- सभी प्रकार के चर की डंप
- स्रोत कोड देखने के लिए कोड हाइलाइटर के साथ फाइल इंस्पेक्टर
- अजाक्स स्क्रिप्ट के लिए जावास्क्रिप्ट कंसोल (केवल क्रोम) पर संदेश भेजें
2017 तक, Firebug और इसलिए FirePHP को अक्षम कर दिया गया है ।
मैंने कंसोल के माध्यम से डीबगिंग के लिए FirePHP से Firebug तक निर्बाध प्रवास की अनुमति देने के लिए ChromePHP टूल में कुछ छोटे संशोधन लिखे।
यह लेख स्पष्ट आसान चरणों में बताता है
5 मिनट में (मौजूदा कोड को तोड़े बिना) FirePHP से ChromePHP पर माइग्रेट करें
Ajax कॉल या XML / JSON प्रतिक्रियाओं के लिए, जहां आप शरीर के साथ गड़बड़ नहीं करना चाहते हैं, आपको HTTP हेडर के माध्यम से लॉग भेजने की आवश्यकता है, फिर उन्हें वेब एक्सटेंशन के साथ कंसोल में जोड़ें। यह है कि फ़ायरफ़ॉक्स (अब उपलब्ध नहीं) और क्वांटमपीईपी (क्रोमपीएचपी का एक कांटा) फ़ायरफ़ॉक्स में ऐसा करता है।
यदि आपके पास धैर्य है, तो एक्स-डीबग एक बेहतर विकल्प है - आपको पीएचपी में गहरी अंतर्दृष्टि मिलती है, अपनी स्क्रिप्ट को रोकने की क्षमता के साथ, देखें कि क्या चल रहा है, फिर स्क्रिप्ट को फिर से शुरू करें।
मुझे किसी पार्टी के लिए देर हो सकती है, लेकिन मैं लॉगिंग फ़ंक्शन के कार्यान्वयन की तलाश कर रहा था जो:
console.log()
,console.log()
।तो उत्पादन ऐसा दिखता है:
(नीचे दिए गए स्निपेट का परीक्षण php पर किया गया है 7.2.11
। मुझे इसकी php पिछड़ी संगतता के बारे में निश्चित नहीं है। यह जावास्क्रिप्ट के साथ-साथ (पुराने ब्राउज़रों के एक शब्द में) के लिए एक मुद्दा हो सकता है, क्योंकि यह console.log()
तर्कों के बाद एक अनुगामी अल्पविराम का निर्माण करता है - जो नहीं है तक कानूनी ES 2017
)
<?php
function console_log(...$args)
{
$args_as_json = array_map(function ($item) {
return json_encode($item);
}, $args);
$js_code = "<script>console.log('%c 💬 log from PHP: ','background: #474A8A; color: #B0B3D6; line-height: 2',";
foreach ($args_as_json as $arg) {
$js_code .= "{$arg},";
}
$js_code .= ")</script>";
echo $js_code;
}
$list = ['foo', 'bar'];
$obj = new stdClass();
$obj->first_name = 'John';
$obj->last_name = 'Johnson';
echo console_log($list, 'Hello World', 123, $obj);
?>
यहाँ मेरा समाधान है, इस बारे में एक अच्छी बात यह है कि आप जितने चाहें उतने पाराम पास कर सकते हैं।
function console_log()
{
$js_code = 'console.log(' . json_encode(func_get_args(), JSON_HEX_TAG) .
');';
$js_code = '<script>' . $js_code . '</script>';
echo $js_code;
}
इस तरह बुलाओ
console_log('DEBUG>>', 'Param 1', 'Param 2');
console_log('Console DEBUG:', $someRealVar1, $someVar, $someArray, $someObj);
अब आपको अपने कंसोल, खुश कोडिंग में आउटपुट देखने में सक्षम होना चाहिए :)
उपयोग:
function console_log($data) {
$bt = debug_backtrace();
$caller = array_shift($bt);
if (is_array($data))
$dataPart = implode(',', $data);
else
$dataPart = $data;
$toSplit = $caller['file'])) . ':' .
$caller['line'] . ' => ' . $dataPart
error_log(end(split('/', $toSplit));
}
यहाँ एक आसान कार्य है। यह उपयोग करने के लिए सुपर सरल है, आपको जितने चाहें उतने तर्क पारित करने की अनुमति देता है, किसी भी प्रकार का, और ब्राउज़र कंसोल विंडो में ऑब्जेक्ट सामग्री को प्रदर्शित करेगा जैसे कि आपने जावास्क्रिप्ट से कंसोल कहा था - लेकिन PHP से
ध्यान दें, आप टैग्स का उपयोग 'TAG-YourTag' पास करके कर सकते हैं, और इसे तब तक लागू किया जाएगा, जब तक कि कोई अन्य टैग न पढ़ लिया जाए, उदाहरण के लिए, 'TAG-YourNextTag'
/*
* Brief: Print to console.log() from PHP
*
* Description: Print as many strings,arrays, objects, and
* other data types to console.log from PHP.
*
* To use, just call consoleLog($data1, $data2, ... $dataN)
* and each dataI will be sent to console.log - note
* that you can pass as many data as you want an
* this will still work.
*
* This is very powerful as it shows the entire
* contents of objects and arrays that can be
* read inside of the browser console log.
*
* A tag can be set by passing a string that has the
* prefix TAG- as one of the arguments. Everytime a
* string with the TAG- prefix is detected, the tag
* is updated. This allows you to pass a tag that is
* applied to all data until it reaches another tag,
* which can then be applied to all data after it.
*
* Example:
*
* consoleLog('TAG-FirstTag', $data, $data2, 'TAG-SecTag, $data3);
*
* Result:
* FirstTag '...data...'
* FirstTag '...data2...'
* SecTag '...data3...'
*/
function consoleLog(){
if(func_num_args() == 0){
return;
}
$tag = '';
for ($i = 0; $i < func_num_args(); $i++) {
$arg = func_get_arg($i);
if(!empty($arg)){
if(is_string($arg) && strtolower(substr($arg, 0, 4)) === 'tag-'){
$tag = substr($arg, 4);
}else{
$arg = json_encode($arg, JSON_HEX_TAG | JSON_HEX_AMP );
echo "<script>console.log('" . $tag . " " . $arg . "');</script>";
}
}
}
}
नोट: func_num_args () और func_num_args () इनपुट तर्कों की एक गतिशील संख्या को पढ़ने के लिए PHP फ़ंक्शन हैं, और इस फ़ंक्शन को एक फ़ंक्शन कॉल से असीम रूप से कई कंसोल.लॉग अनुरोध करने की अनुमति देते हैं।
हालांकि यह एक पुराना सवाल है, मैं इसके लिए देख रहा हूं। यहाँ दिए गए कुछ समाधानों का मेरा संकलन यहाँ दिया गया है और कुछ अन्य विचारों को एक आकार-फिट-सभी समाधान प्राप्त करने के लिए कहीं और मिला है।
कोड:
// Post to browser console
function console($data, $is_error = false, $file = false, $ln = false) {
if(!function_exists('console_wer')) {
function console_wer($data, $is_error = false, $bctr, $file, $ln) {
echo '<div display="none">'.'<script type="text/javascript">'.(($is_error!==false) ? 'if(typeof phperr_to_cns === \'undefined\') { var phperr_to_cns = 1; document.addEventListener("DOMContentLoaded", function() { setTimeout(function(){ alert("Alert. see console."); }, 4000); }); }' : '').' console.group("PHP '.(($is_error) ? 'error' : 'log').' from "+window.atob("'.base64_encode((($file===false) ? $bctr['file'] : $file)).'")'.((($ln!==false && $file!==false) || $bctr!==false) ? '+" on line '.(($ln===false) ? $bctr['line'] : $ln).' :"' : '+" :"').'); console.'.(($is_error) ? 'error' : 'log').'('.((is_array($data)) ? 'JSON.parse(window.atob("'.base64_encode(json_encode($data)).'"))' : '"'.$data.'"').'); console.groupEnd();</script></div>'; return true;
}
}
return @console_wer($data, $is_error, (($file===false && $ln===false) ? array_shift(debug_backtrace()) : false), $file, $ln);
}
//PHP Exceptions handler
function exceptions_to_console($svr, $str, $file, $ln) {
if(!function_exists('severity_tag')) {
function severity_tag($svr) {
$names = [];
$consts = array_flip(array_slice(get_defined_constants(true)['Core'], 0, 15, true));
foreach ($consts as $code => $name) {
if ($svr & $code) $names []= $name;
}
return join(' | ', $names);
}
}
if (error_reporting() == 0) {
return false;
}
if(error_reporting() & $svr) {
console(severity_tag($svr).' : '.$str, true, $file, $ln);
}
}
// Divert php error traffic
error_reporting(E_ALL);
ini_set("display_errors", 1);
set_error_handler('exceptions_to_console');
TESTS और उपयोग:
उपयोग सरल है। मैन्युअल रूप से कंसोल पर पोस्ट करने के लिए पहला फ़ंक्शन शामिल करें। Php अपवाद से निपटने के लिए दूसरे फ़ंक्शन का उपयोग करें। निम्नलिखित परीक्षण एक विचार देना चाहिए।
// Test 1 - Auto - Handle php error and report error with severity info
$a[1] = 'jfksjfks';
try {
$b = $a[0];
} catch (Exception $e) {
echo "jsdlkjflsjfkjl";
}
// Test 2 - Manual - Without explicitly providing file name and line no.
console(array(1 => "Hi", array("hellow")), false);
// Test 3 - Manual - Explicitly providing file name and line no.
console(array(1 => "Error", array($some_result)), true, 'my file', 2);
// Test 4 - Manual - Explicitly providing file name only.
console(array(1 => "Error", array($some_result)), true, 'my file');
शोषण:
फ़ंक्शन console($data, $is_error, $file, $fn)
पहले तर्क के रूप में स्ट्रिंग या सरणी लेता है और इसे js आवेषण का उपयोग करके कंसोल पर पोस्ट करता है।
दूसरा तर्क त्रुटियों के खिलाफ सामान्य लॉग को अलग करने के लिए एक झंडा है। त्रुटियों के लिए, हम ईवेंट श्रोताओं को अलर्ट के माध्यम से हमें सूचित करने के लिए जोड़ रहे हैं यदि कोई त्रुटि हुई थी, तो कंसोल में भी हाइलाइटिंग। यह ध्वज असत्य पर डिफ़ॉल्ट है।
तीसरा और चौथा तर्क फ़ाइल और लाइन नंबर की स्पष्ट घोषणाएं हैं, जो वैकल्पिक है। यदि अनुपस्थित हैं, तो वे debug_backtrace()
हमारे लिए उन्हें लाने के लिए पूर्वनिर्धारित php फ़ंक्शन का उपयोग करने में चूक गए हैं।
अगले फ़ंक्शन exceptions_to_console($svr, $str, $file, $ln)
में php डिफ़ॉल्ट अपवाद हैंडलर द्वारा आदेश में चार तर्क हैं। यहां, पहला तर्क गंभीरता है, जिसे हम severity_tag($code)
त्रुटि पर अधिक जानकारी प्रदान करने के लिए फ़ंक्शन का उपयोग करते हुए पूर्वनिर्धारित स्थिरांक के साथ आगे बढ़ते हैं ।
सूचना:
उपरोक्त कोड JS फ़ंक्शन और विधियों का उपयोग करता है जो पुराने ब्राउज़र में उपलब्ध नहीं हैं। पुराने संस्करणों के साथ संगतता के लिए, इसे प्रतिस्थापन की आवश्यकता है।
उपरोक्त कोड वातावरणों के परीक्षण के लिए है, जहाँ आप अकेले ही साइट पर पहुँच सकते हैं। इसका उपयोग लाइव (उत्पादन) वेबसाइटों में न करें।
सुझाव:
पहले फ़ंक्शन console()
ने कुछ नोटिस फेंक दिए, इसलिए मैंने उन्हें दूसरे फ़ंक्शन के भीतर लपेट दिया है और इसे त्रुटि नियंत्रण ऑपरेटर '@' का उपयोग करके बुलाया है। यदि आपको नोटिस से कोई आपत्ति नहीं है तो इससे बचा जा सकता है।
अंतिम लेकिन कम से कम, अलर्ट न करने वाले अलर्ट कोडिंग करते समय परेशान हो सकते हैं। इसके लिए मैं पॉपअप अलर्ट के बजाय इस बीप (समाधान में पाया गया: https://stackoverflow.com/a/23395136/6060602 ) का उपयोग कर रहा हूं । यह बहुत अच्छा है और संभावनाएं अनंत हैं, आप अपनी पसंदीदा धुनें बजा सकते हैं और कम तनावपूर्ण कोडिंग कर सकते हैं।