5

var_dumpPHPでの出力を解析して配列を作成するにはどうすればよいですか?

4

6 に答える 6

23

有効なPHPコードでもある表現が必要な場合は、var_exportを使用してください

$a = array (1, 2, array ("a", "b", "c"));
$dump=var_export($a, true);
echo $dump;

が表示されます

array (
 0 => 1,
 1 => 2,
 2 => 
 array (
   0 => 'a',
   1 => 'b',
   2 => 'c',
 ),
)

これを配列に戻すには、evalを使用できます。

eval("\$foo=$dump;");
var_dump($foo);

しかし、なぜこれをしたいかわからない。PHPデータ構造をどこかに保存し、後で再作成する場合は、このタスクにより適したserialize()unserialize()を確認してください。

于 2009-09-15T08:43:49.673 に答える
2

私は同様の問題を抱えていました:大きな配列のvardumpの最後に生成された長時間実行スクリプト。さらに分析するために、なんとかしてそれを解析し直さなければなりませんでした。私の解決策は次のようなものでした:

cat log.stats  | 
  sed 's/\[//g' | 
  sed 's/\]//g' | 
  sed -r 's/int\(([0-9]+)\)/\1,/g' | 
  sed 's/\}/\),/g' | 
  sed -r 's/array\([0-9]+\) \{/array(/g' > 
  log.stats.php
于 2012-02-06T11:43:19.953 に答える
1

おそらく、オブジェクトを配列に変換しようとしていますか? http://www.phpro.org/examples/Convert-Object-To-Array-With-PHP.html

于 2009-09-15T08:44:56.927 に答える
1

var_exportPHPコードを作成します。これは、を介して実行できますeval

しかし、私はあなたの考えは何ですか?

于 2009-09-15T08:44:59.333 に答える
1

できません。var_dumpテキストを出力するだけで、何も返しません。

于 2009-09-15T08:41:29.697 に答える
1

たぶんあなたが探してvar_exportいるのは、渡された値の有効なPHP式を提供するでしょう。

于 2009-09-15T08:43:55.370 に答える