$row['NO'] = '<a href="javascript:void(0)" onClick="openmywindow(\''.$row['bcd'].'\',\''.$row['gfh'].'\',\''.$row['test2'].'\',\''.$_REQUEST['test1'].'\')">'.$row['abc'].'</a>'
在上面的陈述中,以这种方式转义值的含义是什么,例如'\'。我怎么能学到这个?
在上面的语句中,我想用静态值'OPEN'替换php变量$row['TEST2']
,但是我收到了语法错误。
答案 0 :(得分:2)
$row['NO'] = '<a href="javascript:void(0)" onClick="openmywindow(\''.$row['bcd'].'\',\''.$row['gfh'].'\',\'OPEN\',\''.$_REQUEST['test1'].'\')">'.$row['abc'].'</a>';
因为逃避非常混乱,所以使用HEREDOC可能会更好:
$row['NO'] =<<<EOC;
<a href="javascript:void(0)" onClick="openmywindow('$row[bcd]','$row[gfh]','OPEN','$_REQUEST[test1].')">$row[abc]</a>
EOC;
有关字符串in the manual的更多信息(包括转义和heredoc)。
PS:不要使用$_REQUEST
。而是使用$_GET
或$_POST
(此处适用的那个。)
答案 1 :(得分:1)
答案 2 :(得分:0)
我建议您这样做而不是转义+连接字符串:
$html = "<a href=\"javascript:void(0);\" onclick=\"openmywindow('%s','%s','%s',%s');\">%s</a>";
$row['NO'] = sprintf($html,
$row['bcd'],
$row['gfh'],
$row['test2'],
$_REQUEST['test1'],
$row['abc']
);
然后更换您需要更换的内容...阅读有关sprintf的手册以获取更多详细信息。
此外,如果$html
之后的任何参数包含'
个字符,则必须在这些参数上调用addslashes。
** 更新 **
关于$_REQUEST
,请阅读here为什么不建议您使用它。