0

長いPHPファイルがあり、すべての変数名のみをコピーして、 SQL挿入クエリを作成したいと思います。正規表現を使用してパターンを検索し、すべての変数を収集してステートメントに吐き出すまで、検索結果を連結する方法はありますか?

私はTextMateを使用しており、正規表現検索に精通しています。正規表現の検索結果には、$ 0、$1などの引数があります。しかし、これが可能かどうかはわかりません。エディターのソリューションは、テキストメイトだけではありません。

変数が多すぎて(+100)、すべてをコピーする気がしません。ここに私のサンプルファイル

$ID = $_POST['id'];
$TXN_TYPE = $_POST['txn_type'];
$CHARSET = $_POST['charset']
$CUSTOM = $_POST['custom'];
4

3 に答える 3

1

get_defined_vars()で何かを試すことができます。ただし、この関数はGLOBAL変数も一覧表示します。不要な場合は、このスニペットを使用して削除し、定義した変数のみを表示できます。

$ variables = array_diff(get_defined_vars()、array(array()));

ただし、このスニペットは通知を生成しますが、それらを解決する方法はまだ見つかりません。

$ _POST変数しかない場合は、$_POST配列自体をループできます。配列をループしながらSQLをプログラムで作成します。

于 2012-05-27T20:34:54.510 に答える
0

私自身の解決策は、逆を行うことです。それはおそらく不可能です。

変数名のみを残して残りをすべて削除します。使用する

[space].+  regex to remove everything that is after the variable name.

変数名だけが残るようにファイルをきれいにします。次に、さらにいくつかの検索と置換を実行して、変数名を必要な形式にします。

于 2012-05-27T20:27:48.697 に答える
0

(配列インデックスではなく) 変数名のみを照合する場合$_POST、正規表現はPHP ドキュメントでほとんど提供されています。

\$[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*

もちろん、これには $_POST が含まれますが、これは簡単に削除できるはずです。そうでない場合は、否定先読みでそれを行うことができます (TextMate がサポートしている場合):

\$(?!_POST($|[^a-zA-Z0-9_\x7f-\xff]))[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*
于 2012-05-27T20:41:37.200 に答える