web-dev-qa-db-ja.com

PHPでvar_dump()を使用して長い文字列の完全なコンテンツを表示する方法

私はいくつかの文字列を持つ配列を持っています

$array = array("string1","string2","string3");

しかし、これらの文字列は非常に長く、時には2000+の長さもあります。だから私がするとき

echo "<pre>";
var_dump($array);
echo "</pre>";

次のようなものが表示されます

string 'zzzzzzzzzzzzzzzzz '... (length = 994)
string 'yyyyyyyyyyyyyyyyy '... (length = 1287)
string 'xxxxxxxxxxxxxxxxx '... (length = 1718)

完全な文字列の代わりに。アレイのコンテンツ全体を表示するにはどうすればよいですか?そして、尋ねる人のために、HTMLタグが含まれているので、私はecho $array[string];

32
Carlos2W

Xdebugを使用しています。これは、デフォルトのvar_dump()をオーバーロードして、よりきれいでより構成可能な出力を提供します。デフォルトでは、一度に表示される情報の量も制限されます。より多くの出力を取得するには、いくつかの設定を変更する必要があります。

これをスクリプトの先頭に追加します。

ini_set("xdebug.var_display_max_children", -1);
ini_set("xdebug.var_display_max_data", -1);
ini_set("xdebug.var_display_max_depth", -1);

ドキュメント から:

xdebug.var_display_max_children

タイプ:整数、デフォルト値:128

Xdebug_var_dump()、xdebug.show_local_vars、または関数トレースを使用して変数が表示されるときに、配列の子の量とオブジェクトのプロパティが表示されます。

制限を無効にするには、値として-1を使用します。

この設定は、リモートデバッグ機能を介してクライアントに送信される子の数には影響しません。

xdebug.var_display_max_data

タイプ:整数、デフォルト値:512

Xdebug_var_dump()、xdebug.show_local_vars、または関数トレースを使用して変数が表示されるときに表示される最大文字列長を制御します。

制限を無効にするには、値として-1を使用します。

この設定は、リモートデバッグ機能を介してクライアントに送信される子の数には影響しません。

xdebug.var_display_max_depth

タイプ:整数、デフォルト値:3

Xdebug_var_dump()、xdebug.show_local_vars、または関数トレースを使用して変数を表示するときに、配列要素とオブジェクトプロパティのネストレベルの数を制御します。

選択できる最大値は1023です。値として-1を使用して、この最大数を選択することもできます。

この設定は、リモートデバッグ機能を介してクライアントに送信される子の数には影響しません。

45
Ed Cottrell

場合によっては、長い文字列を操作するときにvar_dumpを使用するのが非常に面倒になることがあります。結果をブラウザに出力する代わりに、ターミナルを使用できます。別の解決策は、file_put_contentsなどを使用してテキストファイルに結果を出力することです。次に、ファイルを開いて結果を確認します。

2
Vesaka