所以,我有下面的行,我用PHP运行($ addPHPtags);
$addPHPtags = "/bin/sed -i '/<BODY BGCOLOR=\"#FFFFFF\">/ a\ <?php \n ?> '" . $instance['file'] . " 2>&1";
我期望该命令find密钥,并附上一个PHP标签。 但是,当我在PHP中运行它,如果我陷阱命令输出,我得到以下错误:
[0] => /bin/sed: -e expression #1, char 39: unknown command: `?'
但是,如果我在SSH中运行相同的命令,它工作得很好:
/bin/sed -i '/<BODY BGCOLOR=\"#FFFFFF\">/ a\ <?php \n ?>' file.php
我没有想法,我尝试了各种替代scheme,但无济于事。 任何帮助? 谢谢。
/bin/sed/ -i '/<BODY BGCOLOR="#FFFFFF">/ a\ <?php \n ?> 'INPUTFILE` 2>&1
请注意,正则expression式和input文件之间缺less空格。
$addPHPtags = "/bin/sed -i '/<BODY BGCOLOR=\"#FFFFFF\">/ a\ <?php \n ?> '" . $instance['file'] . " 2>&1"; # ^^
在你的PHP中放置一个空间,我认为这可能是好的…并双重转义换行符。 你为什么不直接在PHP中进行转换?
你可能需要加倍转义换行符。 尝试:
$addPHPtags = "/bin/sed -i '/<BODY BGCOLOR=\"#FFFFFF\">/ a\ <?php \\n ?> '" . $instance['file'] . " 2>&1";