试图在PHP中定义一个HTML代码行

时间:2013-10-03 01:00:54

标签: php

我正在尝试将$ 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中出现意外的'/'。

请帮帮我。

6 个答案:

答案 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);

您的内部报价将自动为您转义。