ホームページ php教程 php手册 通过浏览器的Console进行PHP调试

通过浏览器的Console进行PHP调试

Jun 06, 2016 pm 08:14 PM
php コンソール ブラウザ

当我们的PHP程序Debug时,比较常用的方式是将变量的信息打印到浏览器中,例如这样:

    <?php  
    echo &#39;<pre class="brush:php;toolbar:false">';  
    print_r($bar);  
    echo '
';       exit;
ログイン後にコピー

可是直接打印出来有可能会干扰你的页面,打乱布局,影响作为Api返回的数据等问题。这时我们可以采取将调试信息输出到文件的方式,如下是最简单的例子:

error_log(print_r($bar, true));
ログイン後にコピー

可是这种方式用来记录日志还合适,用到调试时终究还是不太方便。此时我们可以利用现代浏览器的控制台,比如Chrome Console(Win快捷键 Ctrl+Shift+J),将内容输出到Console里,就可以解决这个问题了。

现在已经有一些这样的工具了,比如说 PHP-Console 或者Chrome Logger ,前者针对PHP,后者支持多种服务端语言,使用方式都是先安装一个Chrome扩展,然后提供服务端的库供调用。实现方式大致是利用Session,Cookies等来传递数据。

如上是比较完善的解决方式,都提供了丰富的功能。但如果只是想要一个简单的,可用的,不用安装扩展程序的方式来解决这个问题,那么可以这么来做:

    <?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>");  
        }  
    }
ログイン後にコピー

其实质上就是在页面里加入了一段javascript的脚本,利用 console.log();函数输出信息到控制台,如上方法打印出来都是字符串形式,如果将单引号去掉,PHP的数组和对象将以JS对象的方式打印出来,即

echo("<script>console.log(".json_encode($data).");</script>");
ログイン後にコピー

究竟使用哪一种看你喜欢的方式了。

如上就是最简单的实现方式了,但这么做有一点不太好,就是输出的很凌乱,如果你在不同的位置都调用了该函数,那么在页面的各个位置都将插入一段

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

一致式(PHP 8)とそれがスイッチとどのように異なるかを説明します。 一致式(PHP 8)とそれがスイッチとどのように異なるかを説明します。 Apr 06, 2025 am 12:03 AM

PHP8では、一致式は、式の値に基づいて異なる結果を返す新しい制御構造です。 1)Switchステートメントに似ていますが、実行ステートメントブロックの代わりに値を返します。 2)一致式の式は厳密に比較され、セキュリティが向上します。 3)スイッチステートメントの脱落の可能性を回避し、コードのシンプルさと読みやすさを向上させます。

PHP関数引数と配列の開梱で...(SPLAT)演算子の目的と使用について説明してください。 PHP関数引数と配列の開梱で...(SPLAT)演算子の目的と使用について説明してください。 Apr 06, 2025 am 12:07 AM

PHPの...(SPLAT)演算子は、機能パラメーターと配列を開梱するために使用され、コードのシンプルさと効率を向上させます。 1)関数パラメーター解放:アレイ要素をパラメーターとして関数に渡します。 2)配列の開梱:アレイを別の配列または関数パラメーターに解除します。

Webページにローカルにインストールされている「Jingnan Mai Round Body」を正しく表示するにはどうすればよいですか? Webページにローカルにインストールされている「Jingnan Mai Round Body」を正しく表示するにはどうすればよいですか? Apr 05, 2025 pm 10:33 PM

最近、Webページにローカルにインストールされたフォントファイルを使用して、インターネットから無料のフォントをダウンロードし、システムに正常にインストールしました。今...

ネガティブマージンが場合によっては効果がないのはなぜですか?この問題を解決する方法は? ネガティブマージンが場合によっては効果がないのはなぜですか?この問題を解決する方法は? Apr 05, 2025 pm 10:18 PM

なぜマイナスマージンが場合によっては有効にならないのですか?プログラミング中、CSSの負のマージン(負...

CSSを介してサイズ変更シンボルをカスタマイズし、背景色で均一にする方法は? CSSを介してサイズ変更シンボルをカスタマイズし、背景色で均一にする方法は? Apr 05, 2025 pm 02:30 PM

CSSでサイズ変更シンボルをカスタマイズする方法は、背景色で統一されています。毎日の開発では、調整など、ユーザーインターフェイスの詳細をカスタマイズする必要がある状況に遭遇することがよくあります...

58.com作業ページでリアルタイムアプリケーションと視聴者のデータを取得する方法は? 58.com作業ページでリアルタイムアプリケーションと視聴者のデータを取得する方法は? Apr 05, 2025 am 08:06 AM

クロール中に58.com作業ページの動的データを取得するにはどうすればよいですか? Crawlerツールを使用して58.comの作業ページをrawったら、これに遭遇する可能性があります...

CSSとFlexBoxを使用して、さまざまな画面サイズで画像とテキストのレスポンシブレイアウトを実装する方法は? CSSとFlexBoxを使用して、さまざまな画面サイズで画像とテキストのレスポンシブレイアウトを実装する方法は? Apr 05, 2025 pm 06:06 PM

CSSを使用してレスポンシブレイアウトを実装して、Webデザインのさまざまな画面サイズの下でレイアウトの変更を実装する場合、CSS ...

クロスサイトリクエストフォーファリー(CSRF)とは何ですか?また、PHPにCSRF保護をどのように実装しますか? クロスサイトリクエストフォーファリー(CSRF)とは何ですか?また、PHPにCSRF保護をどのように実装しますか? Apr 07, 2025 am 12:02 AM

PHPでは、予測不可能なトークンを使用して、CSRF攻撃を効果的に防ぐことができます。特定の方法には次のものが含まれます。1。フォームのCSRFトークンを生成および埋め込みます。 2.リクエストを処理するときにトークンの有効性を確認します。

See all articles