如何在PHP中基于项目数组将字符串追加到字符串
我正在尝试制作一个脚本来扩展Zend返回的SQL的视图并格式化此SQL代码,因此我想在mysql的保留字中插入“\n”,在表名、字段名等中插入“\n”和“\t” 例如(简而言之,我使用了更多的保留字来匹配): 输出: SELECT * FROM table WHERE field = 'value' ; 在$sql变量中返回“\nSELECT”、“\nFROM”、“\nWHERE” 我已经处理过的其他字符,问题是mysql保留字 有线索吗?我尝试了preg_replace,但它仍然会删除匹配项。您可以试试这个如何在PHP中基于项目数组将字符串追加到字符串,php,string,replace,Php,String,Replace,我正在尝试制作一个脚本来扩展Zend返回的SQL的视图并格式化此SQL代码,因此我想在mysql的保留字中插入“\n”,在表名、字段名等中插入“\n”和“\t” 例如(简而言之,我使用了更多的保留字来匹配): 输出: SELECT * FROM table WHERE field = 'value' ; 在$sql变量中返回“\nSELECT”、“\nFROM”、“\nWHERE” 我已经处理过的其他字符,问题是mysql保留字 有线索吗?我尝试了preg_replace
$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;
}
}
希望这有帮助。您当前的
preg\u replace()
code:)
$sql = array('SELECT', 'FROM', 'WHERE', ... );
$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;
}
}