0

Zend が返す SQL のビューを拡張し、この SQL コードをフォーマットするスクリプトを作成しようとしているので、mysql の予約語と「\n」および「\t」に「\n」を挿入したいと考えています。テーブル名、フィールド名などに...

例(要するに、私はより多くの予約語を使用して一致させます):

$sql = "SELECT * FROM `table` WHERE `field` = 'value';";

出力:

選択する
    *
から
    テーブル
どこ
    フィールド = '値'
;

str_replace に対して多くの呼び出しを行うことができますが、次のようなものが必要です。

$sql = array('SELECT', 'FROM', 'WHERE', ... );

$sql 変数に "\nSELECT"、"\nFROM"、"\nWHERE" を返します。

私がすでに扱った他の文字、問題はmysqlの予約語です

どんな手掛かり?preg_replace を試しましたが、それでも一致が削除されます。

4

1 に答える 1

1

これを試すことができます

$keywords = array(
    "select",
    "update"
); //etc
$sql = SELECT * FROM`table`WHERE`field` = 'value';
$tokens = explode(" ", $sql);

foreach($tokens as $token)
    {

    // if token in $keywords print \n along with value else print as it is ..

    if (in_array($token, $keywords))
        {
        echo $token . "\n";
        }
      else
        {
        echo $token;
        }
    }

お役に立てれば ..

于 2013-01-04T12:48:08.043 に答える