-2

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

请帮我。

4

6 回答 6

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语法,甚至不用担心转义(双)引号。

于 2013-10-03T01:11:13.147 回答
1

字符串声明用'.

$display = '...内容...';

这意味着字符串的开头以 a 开头并以 a'结尾'

您的字符串包含一系列双引号",这很好,但是,您的变量还包括...

onmouseover="this.src='./pictures/fm/5more1.png'" onmouseout="this.src='./pictures/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\'">';
于 2013-10-03T01:25:39.203 回答
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\'">';

或者"当你用'.

于 2013-10-03T01:03:24.577 回答
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\'">';
于 2013-10-03T01:05:42.547 回答
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'>";

PS:大括号可以在引号(“...”)之间添加如下:{$onMouseout}

于 2013-10-03T01:34:21.663 回答
-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变量时避免使用,像这样,如果并且仅当您将内部单引号更改为双引号时。

echo addslashes($display);

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

于 2013-10-03T01:08:12.603 回答