2017-10-20 13 views
0

print_r($array);メソッドを使用すると、PHPのインデントを4つの空白でコピーします。 X個のスペース(またはタブ)を使用するようにこの設定を変更するにはどうすればよいですか?オフハンド私はphp.iniファイルに関連するものは何も表示されません。PHPのprint_r()メソッドの空白を制御する方法

+0

なぜこれが必要ですか? –

+1

私はそれが可能だとは思わないが、なぜあなたはしたいだろうか? – rickdenhaan

+0

なぜ私はしませんか?あなたは自分の好みを持っていて、私には私のものがあります。多分私の水平方向の画面解像度は120px、1,200pxまたは12,000pxです。空白の出力を調整することができれば、テスト中の出力データをより迅速に処理することができます。 – John

答えて

3

varに保存して、それに関数(関数)を実行するのはどうですか? print_rには、ドキュメントに従って出力を変更するための特別な設定はありません。

$var = print_r($your_array, true); 
$var = str_ireplace(' ',' ',trim($var)); 
var_dump($var); 
+0

興味深い...あなたもちょっとしたことを見逃していましたが、あなたの*意図した道を見ました。私は4つのスペースをどのように置き換えるべきかを明確にしなかったので、私は4つを取って、それをあなたの例に置き換えました。詳細なデバッグが必要な場合、私はいつも 'echo '

';print_r($array);echo '
';'のようなことをします。私は、これが刺激的なもの以上のものであれば、これを機能の中に張ることができると思います。 – John

+0

どうしてそうするのですか? javascriptとconsole.log関数で表示するだけで、ブラウザコンソールにログオンするだけです。ブラウザはコンソールでスタイルを変更し、Webページは影響を受けません。デバッグ以外の目的でprint_rを使用することは非常に悪いことです。 –

+0

JavaScriptについてはどうですか?私はちょうどCSSでコードをスタイリングしないで、空白のPHP出力の量を変更することに興味があります。 – John

0

は実際インデントは、実際

pre { 
    display: block; 
    font-family: monospace; 
    white-space: pre; 
    margin: 1em 0; 
} 

としてインデント使用CSSを編集して、白色スペーシングのproperityを編集するためのHTML @see here の「プレ」タグによって与えられます。

+0

print_rを使用するのは醜い水平コードで、ブラウザは "pre"タグを参照してインデントします –

+0

デバッグ時に 'echo '

';print_r($array);echo '
'; 'を使用しましたが、 – John

+0

ええ...しかし、これはあなたの仕事を行うことができます –

1

ドキュメントではこれを指定していないため、PHPソースコードを検索してprint_rの内容とインデント値を取得する場所を調べました。

4つのスペースがソースにハードコードされています。 print_r()の背後にあるC関数は、実際に出力を生成するthe oneになる前にいくつかの他の関数を通過し、この関数は各インデントが得られるスペースの数を決定するためにPRINT_ZVAL_INDENT constantを使用します。

この関数は定数を直接取得します。この関数は、その値をオーバーライドする設定値または環境変数があるかどうかを知るためのロジックはありません。したがって、この値をprint_r()のインデントに変更したい場合は、ソースコードをチェックアウトする必要があります。定数を4以外に変更し、ソースからPHPをコンパイルしてください。

+0

"[..]ソースからPHPをコンパイルします。" - この問題を解決するためにあなたのスタイルが好きです:D –

関連する問題