Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在PHP中基于项目数组将字符串追加到字符串_Php_String_Replace - Fatal编程技术网

如何在PHP中基于项目数组将字符串追加到字符串

如何在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

我正在尝试制作一个脚本来扩展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;
        }
    }