我正在尝试将$ display定义为html行。这是我到目前为止所做的。
$display = '<input type="image" name="5more" value="5more" src="./pictures/fm/5more2.png" onmouseover="this.src='./pictures/fm/5more1.png'" onmouseout="this.src='./pictures/fm/5more2.png'">';
我一直收到此错误:解析错误:语法错误,第15行的results.php中出现意外的'/'。
请帮帮我。
答案 0 :(得分:3)
$display = <<<EOF
<input type="image" name="5more" value="5more" src="./pictures/fm/5more2.png" onmouseover="this.src='./pictures/fm/5more1.png'" onmouseout="this.src='./pictures/fm/5more2.png'">
EOF;
使用Heredoc语法,甚至不用担心转义(双重)引号。
答案 1 :(得分:1)
您需要转义字符串中的'
。
$display = '<input type="image" name="5more" value="5more"
src="./pictures/fm/5more2.png"
onmouseover="this.src=\'./pictures/fm/5more1.png\'"
onmouseout="this.src=\'./pictures/fm/5more2.png\'">';
或者当您使用"
引用字符串时,只在字符串中使用'
。
答案 2 :(得分:1)
你需要逃避内部的单引号。试试这个:
$display = '<input type="image" name="5more" value="5more" src="./pictures/fm/5more2.png" onmouseover="this.src=\'./pictures/fm/5more1.png\'" onmouseout="this.src=\'./pictures/fm/5more2.png\'">';
答案 3 :(得分:1)
字符串声明包含'
。
$ display ='... content ...';
这意味着字符串的开头以'
开头,以'
结尾。
您的字符串包含一系列双引号"
,这很好,但是,您的变量还包括...
的onmouseover = “this.src = '/图片/ FM / 5more1.png'” 的onmouseout = “this.src = '/图片/ FM / 5more2.png'”
图像声明之前和之后的单引号'
是导致问题的原因。 PHP编译器将第一个单引号'
(在第一个图像声明之前)视为字符串的结尾。
解决此问题的方法是转义字符串中的单引号。只需在每个单引号前添加\
即可。单引号将如下\'
。
这是一个正确的声明
$display = '<input type="image" name="5more" value="5more" src="./pictures/fm/5more2.png" onmouseover="this.src=\'./pictures/fm/5more1.png\'" onmouseout="this.src=\'./pictures/fm/5more2.png\'">';
答案 4 :(得分:0)
如上所述,您需要转义引号。但就可读性而言,这种设计方法即使更加冗长也会省去一些痛苦。检查托管配置是否支持。
$urlOver = "./pictures/fm/5more1.png";
$urlOut = "./pictures/fm/5more2.png";
$onMouseover = "this.src='$urlOver'";
$onMouseout = "this.src='$urlOut'";
$display =
"<input type='image' name='5more' value='5more'
src='$urlOut'
onmouseover='$onMouseout'
onmouseout='$onMouseout'>";
P.S:当引号(“......”)之间可以添加如下括号:{$onMouseout}
答案 5 :(得分:-2)
$display = '<input type="image" name="5more" value="5more"
src="./pictures/fm/5more2.png" onmouseover="this.src=\'./pictures/fm/5more1.png\'"
onmouseout="this.src=\'./pictures/fm/5more2.png\'">';
您不能使用单引号构建回显,也可以在其中使用单引号。这打破了框架和输出。但是,如果您使用\
转义内部单引号,则可以使用它。你可以在回显addslashes
变量时使用$display
,如下所示,IF和ONLY,如果你将内部单引号更改为双引号。
echo addslashes($display);
您的内部报价将自动为您转义。