我正在尝试创建一个脚本来扩展Zend返回的SQL视图并格式化这个SQL代码,所以我想将“\ n”插入mysql的保留字和“\ n”和“ \ t“到表名,字段名等......
E.g(简而言之,我使用更多保留字来匹配):
$sql = "SELECT * FROM `table` WHERE `field` = 'value';";
输出:
SELECT * FROM table WHERE field = 'value' ;
我可以对str_replace做很多调用,但我需要这样的东西:
$sql = array('SELECT', 'FROM', 'WHERE', ... );
在$ sql变量中返回“\ nSELECT”,“\ nFROM”,“\ nWHERE”。
我已经处理过的其他字符,问题是mysql保留字
有任何线索吗?我尝试了preg_replace但它仍然删除了匹配。
答案 0 :(得分: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;
}
}
希望这会有所帮助..