我的代码中遇到了问题.每当我尝试插入文本字段时,它就会出错.这里的语法有什么问题?
print '<table>';
print "<tr style='background-color:#CDC9C9;'>
<td><A HREF=\"http://localhost/cgi-bin/AddUser.cgi\">ADD</A></td>
<td></td>
<td><b>UserId</b></td>
<td><input type="text" name="UserId"></td>
<td><b>UserName</b></td>
<td><input type="text" name="User_Name"></td>
<td><input type="submit" name="Filter" value="Filter"> </td>
</tr>";
print"</table>";
Run Code Online (Sandbox Code Playgroud)
如果你有一个双引号字符串,那么它不能包含未转义的双引号(希望是明显的原因).
一些解决方法:
1 /逃避双引号.
print "<tr style='background-color:#CDC9C9;'>
<td><A HREF=\"http://localhost/cgi-bin/AddUser.cgi\">ADD</A></td>
<td></td>
<td><b>UserId</b></td>
<td><input type=\"text\" name=\"UserId\"></td>
<td><b>UserName</b></td>
<td><input type=\"text\" name=\"User_Name\"></td>
<td><input type=\"submit\" name=\"Filter\" value=\"Filter\"> </td>
</tr>";
Run Code Online (Sandbox Code Playgroud)
2 /切换到单引号字符串(因为您的字符串不包含变量或转义序列).
print '<tr style="background-color:#CDC9C9;">
<td><A HREF="http://localhost/cgi-bin/AddUser.cgi">ADD</A></td>
<td></td>
<td><b>UserId</b></td>
<td><input type="text" name="UserId"></td>
<td><b>UserName</b></td>
<td><input type="text" name="User_Name"></td>
<td><input type="submit" name="Filter" value="Filter"> </td>
</tr>';
Run Code Online (Sandbox Code Playgroud)
注意:我必须将style属性中的单引号更改为双引号.
3 /使用here-doc.
print <<END_OF_HTML;
<tr style='background-color:#CDC9C9;'>
<td><A HREF="http://localhost/cgi-bin/AddUser.cgi">ADD</A></td>
<td></td>
<td><b>UserId</b></td>
<td><input type="text" name="UserId"></td>
<td><b>UserName</b></td>
<td><input type="text" name="User_Name"></td>
<td><input type="submit" name="Filter" value="Filter"> </td>
</tr>
END_OF_HTML
Run Code Online (Sandbox Code Playgroud)
4 /选择不同的引用字符.
print qq[<tr style='background-color:#CDC9C9;'>
<td><A HREF="http://localhost/cgi-bin/AddUser.cgi">ADD</A></td>
<td></td>
<td><b>UserId</b></td>
<td><input type="text" name="UserId"></td>
<td><b>UserName</b></td>
<td><input type="text" name="User_Name"></td>
<td><input type="submit" name="Filter" value="Filter"> </td>
</tr>];
Run Code Online (Sandbox Code Playgroud)
但是,与许多问题一样,真正的解决方案是使用模板系统.