在PHP内部执行冗长的regex shell命令时,PHP解析错误


PHP parse Error while executing a lengthy regex shell command from within php

当我尝试在PHP中使用shell_exec()执行此命令解析文件时:

$shellCommand = "cat $filelocn | awk 'BEGIN{RS="<br>"}{$1=$1}1' |sed '/CURRENT/d' ";
echo $shellCommand ;

显示错误:

PHP Parse error:  syntax error, unexpected '>' in filename.php

我还试着在' ie: "cat $filelocn | awk ''BEGIN{RS='"<br>'"}{$1=$1}1'"; '之前添加'但它还是会抛出错误。

如何解决这个问题?

除非您试图将PHP代码中的变量插入到字符串中,否则您还需要转义美元符号:

$shellCommand = "cat '$filelocn | awk 'BEGIN{RS='"<br>'"}{'$1='$1}1' |sed '/CURRENT/d' ";
echo $shellCommand;

具体来说,$1会导致解析错误。如果$filelocn是PHP变量,则不需要转义