尝试在 PHP 中定义 html 代码行


Trying to define a html code line in 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'">';

我不断收到此错误:解析错误:语法错误,结果中意外的"/".php在第 15 行。

请帮助我。

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

您需要转义字符串中的'

$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''">';

或者当您用 ' 引用字符串时,仅在字符串内使用 "

您需要转义其中的单引号。尝试使用这个:

$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''">';

字符串声明用 ' 括起来。

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

这意味着字符串的开头以'开头,以'结尾。

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

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''">';

您需要转义上面提到的引号。但就可读性而言,即使它更冗长,这种设计方法也会节省一些痛苦。检查您的托管配置是否支持。

$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'>";

附言:在引号("...")之间可以添加大括号如下: {$onMouseout}

 $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''">';

您不能用单引号框住回声,也不能在其中使用单引号。这会破坏帧和输出。但是,如果你用'转义内部单引号,你可以侥幸逃脱。在回显$display变量时,您也可以使用addslashes,例如 IF 和 ONLY 当您将内部单引号更改为双引号时。

echo addslashes($display);

你的内部报价会自动为你逃脱。