0

我正在尝试编写一个脚本来扩展 Zend 返回的 SQL 视图并格式化此 SQL 代码,所以我想在 mysql 的保留字中插入“\n”和“\n”和“\t”到表名、字段名等...

eg(简而言之,我使用更多的保留字来匹配):

$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 回答