欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

通過chrome瀏覽器控制臺(Console)進行PHP Debug的方法

 更新時間:2016年10月19日 17:40:08   投稿:mdxy-dxy  
這篇文章主要介紹了利用chrome瀏覽器控制臺(Console)進行PHP Debug,需要的朋友可以參考下

 效果如下圖

PHP Console是一款可以幫助用戶模擬真實的PHP網(wǎng)站運行環(huán)境,幫助用戶使用Chrome插件對PHP代碼進行調(diào)試的Chrome插件,用戶在Chrome中安裝了PHP Console插件以后,可以在自己的PHP項目中引用PHP Console項目代碼,并輸出調(diào)試信息,讓PHP Console插件進行捕獲,這樣在網(wǎng)站發(fā)布成功以后,還可以使用PHP Console插件進行輸出調(diào)試信息到Chrome瀏覽器中,用戶可以通過PHP Console插件來查看這些來自于PHP服務器發(fā)來的調(diào)試日志。

當我們的PHP程序Debug時,比較常用的方式是將變量的信息打印到瀏覽器中,例如這樣:

<?php
echo '<pre>';
print_r($bar);
echo '</pre>';
exit;

可是直接打印出來有可能會干擾你的頁面,打亂布局,影響作為Api返回的數(shù)據(jù)等問題。這時我們可以采取將調(diào)試信息輸出到文件的方式,如下是最簡單的例子:

error_log(print_r($bar, true));

可是這種方式用來記錄日志還合適,用到調(diào)試時終究還是不太方便。此時我們可以利用現(xiàn)代瀏覽器的控制臺,比如Chrome Console(Win快捷鍵 Ctrl+Shift+J),將內(nèi)容輸出到Console里,就可以解決這個問題了。

現(xiàn)在已經(jīng)有一些這樣的工具了,比如說 PHP-Console 或者Chrome Logger ,前者針對PHP,后者支持多種服務端語言,使用方式都是先安裝一個Chrome擴展,然后提供服務端的庫供調(diào)用。實現(xiàn)方式大致是利用Session,Cookies等來傳遞數(shù)據(jù)。

如上是比較完善的解決方式,都提供了豐富的功能。但如果只是想要一個簡單的,可用的,不用安裝擴展程序的方式來解決這個問題,那么可以這么來做:

<?php
function console_log($data)
{
	if (is_array($data) || is_object($data))
	{
		echo("<script>console.log('".json_encode($data)."');</script>");
	}
	else
	{
		echo("<script>console.log('".$data."');</script>");
	}
}

其實質(zhì)上就是在頁面里加入了一段javascript的腳本,利用 console.log() 函數(shù)輸出信息到控制臺,如上方法打印出來都是字符串形式,如果將單引號去掉,PHP的數(shù)組和對象將以JS對象的方式打印出來,即echo("<script>console.log(".json_encode($data).");</script>");,究竟使用哪一種看你喜歡的方式了。
如上就是最簡單的實現(xiàn)方式了,但這么做有一點不太好,就是輸出的很凌亂,如果你在不同的位置都調(diào)用了該函數(shù),那么在頁面的各個位置都將插入一段<script>,雖說JS在頁面幾乎任何位置都可以,但我們可以有更好的辦法,將所有數(shù)據(jù)統(tǒng)一到一處輸出:

<?php
//注冊一個shutdown函數(shù),如果不這么做的話記得在程序最后echo Console_log::fetch_output();
register_shutdown_function('my_shutdown');

function my_shutdown()
{
	echo Console_log::fetch_output();
}

class Console_log {
  private static $output = '';
  static function log($data)
  {
    if (is_array($data) || is_object($data))
    {
      $data = json_encode($data);
    }
    ob_start();
    ?>
		<?php if (self::$output === ''):?>
		<script>
		<?php endif;?>
		console.log('<?=$data;?>');
    <?php
    self::$output .= ob_get_contents();
    ob_end_clean();
  }
  static function fetch_output()
  {
  	if (self::$output !== '')
  	{
  		self::$output .= '</script>';
  	}
    return self::$output;
  }
}

注意如上使用<?=來代替<?php echo ,需要在php.ini中開啟Short_open_tag=On。這段代碼就是利用php的輸出控制緩沖函數(shù)來將數(shù)據(jù)保存下來,最后一次全部輸出。

相關文章

  • php訪問對象中的成員的實例方法

    php訪問對象中的成員的實例方法

    在本篇文章里小編給大家整理了一篇關于php訪問對象中的成員的實例方法,有需要的朋友們可以跟著學習參考下。
    2021-10-10
  • PHP實現(xiàn)搜索相似圖片

    PHP實現(xiàn)搜索相似圖片

    感知哈希的優(yōu)點是簡單快速,不受圖片大小縮放的影響,缺點是圖片的內(nèi)容不能變更。實際應用中,往往采用更強大的pHash算法和SIFT算法,它們能夠識別圖片的變形。只要變形程度不超過25%,它們就能匹配原圖。
    2015-09-09
  • memcached使用中避坑實例匯總

    memcached使用中避坑實例匯總

    這篇文章主要介紹了memcached使用中避坑實例匯總的相關資料,需要的朋友可以參考下
    2023-06-06
  • PHP保存session到memcache服務器的方法

    PHP保存session到memcache服務器的方法

    這篇文章主要介紹了PHP保存session到memcache服務器的方法,涉及PHP操作session及memcache的相關技巧,需要的朋友可以參考下
    2016-01-01
  • PHP實現(xiàn)網(wǎng)頁內(nèi)容html標簽補全和過濾的方法小結【2種方法】

    PHP實現(xiàn)網(wǎng)頁內(nèi)容html標簽補全和過濾的方法小結【2種方法】

    這篇文章主要介紹了PHP實現(xiàn)網(wǎng)頁內(nèi)容html標簽補全和過濾的方法,結合實例形式分析了php常見的標簽檢查、補全、閉合、過濾等相關操作技巧,需要的朋友可以參考下
    2017-04-04
  • DOM基礎及php讀取xml內(nèi)容操作的方法

    DOM基礎及php讀取xml內(nèi)容操作的方法

    這篇文章主要介紹了DOM基礎及php讀取xml內(nèi)容操作的方法,實例分析了php對XML文件的增刪改查操作原理與技巧,需要的朋友可以參考下
    2015-01-01
  • PHP基于SPL實現(xiàn)的迭代器模式示例

    PHP基于SPL實現(xiàn)的迭代器模式示例

    這篇文章主要介紹了PHP基于SPL實現(xiàn)的迭代器模式,簡單描述了迭代器模式的概念、原理并結合實例形式分析了php使用SPL實現(xiàn)迭代器模式的相關操作技巧與注意事項,需要的朋友可以參考下
    2018-04-04
  • 幾行代碼輕松實現(xiàn)PHP文件打包下載zip

    幾行代碼輕松實現(xiàn)PHP文件打包下載zip

    這篇文章主要為大家詳細介紹了使用PHP自帶zlib函數(shù) ,輕松實現(xiàn)PHP文件打包下載zip,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • PHP多維數(shù)組遍歷方法(2種實現(xiàn)方法)

    PHP多維數(shù)組遍歷方法(2種實現(xiàn)方法)

    這篇文章主要介紹了PHP多維數(shù)組遍歷方法,實例分析了2種多維數(shù)組的遍歷技巧,包括簡單的foreach遍歷與遞歸操作遍歷實現(xiàn)方法,需要的朋友可以參考下
    2015-12-12
  • 談談PHP連接Access數(shù)據(jù)庫的注意事項

    談談PHP連接Access數(shù)據(jù)庫的注意事項

    有的時候需要用php連接access數(shù)據(jù)庫,結果整了半天Access數(shù)據(jù)庫就是連接不上,查找很多資料,以下是些個人經(jīng)驗,希望能給需要連接access 數(shù)據(jù)的人帶來幫助。
    2016-08-08

最新評論