我一直在尝试像这样的heredoc方法:
<?php echo $form = <<<HTML ?>
here follows the html...
<form method="post" >
<table border="0" cellpadding="0" cellspacing="0" id="reserv_table">
<tr>
<td><span id="message"><b>for you : 9€</b> </span></td>
<td><input type="text" name="_membre" id="_membre" style="width: 40px;" class="text disabled" disabled="disabled" /></td>
<td valign="top">
<table>
<tr>
<?php HTML; ?>
但是我收到了错误。
答案 0 :(得分:4)
如果您只是回显表单,则甚至不需要PHP的heredoc语法。使用结束分隔符突破PHP,然后在输出HTML表单后返回PHP。
编辑:好的,所以您需要将表单输出存储在变量中,但是您还希望将其打印到浏览器中?没问题,请使用output buffering(特别是ob_start()
和ob_get_flush()
:
<?php
// Begin output buffering
ob_start();
// Break out of PHP...
?>
<form method="post" >
<table border="0" cellpadding="0" cellspacing="0" id="reserv_table">
<tr>
<td><span id="message"><b>for you : 9€</b> </span></td>
<td><input type="text" name="_membre" id="_membre" style="width: 40px;" class="text disabled" disabled="disabled" /></td>
<td valign="top">
<table>
<tr>
<?php
// Back to PHP, store the HTML in $form AND print it to the browser
$form = ob_get_flush();
?>
答案 1 :(得分:2)
您的PHP代码<?php
和?>
正在弄乱您的Heredoc代码。
?>
<?php
和最后一行开头的空格?>
并将其放在下面一行这都是假设您需要将所有代码放入$form
变量中的某些原因。如果你不这样做,请选择BoltClock的答案。
如果在修复代码后,编辑器不会正确地突出显示语法,那么编辑器就会出错。您可以使用其他编辑器替换它,或者只是避免使用Heredoc语法。我倾向于避免使用Heredoc,但主要是因为我觉得它让事情变得混乱。
答案 2 :(得分:0)
为什么不根据它syntax rules尝试heredoc?
虽然要打印出这张表格,但你不需要heredoc 按原样打印出来
here follows the html...
<form method="post" >
<table border="0" cellpadding="0" cellspacing="0" id="reserv_table">
<tr>
<td><span id="message"><b>for you : 9€</b> </span></td>
<td><input type="text" name="_membre" id="_membre" style="width: 40px;" class="text disabled" disabled="disabled" /></td>
<td valign="top">
<table>
<tr>
答案 3 :(得分:0)
为什么不直接删除像这样的PHP代码
<form method="post" >
<table border="0" cellpadding="0" cellspacing="0" id="reserv_table">
<tr>
<td><span id="message"><b>for you : 9€</b> </span></td>
<td><input type="text" name="_membre" id="_membre" style="width: 40px;" class="text disabled" disabled="disabled" /></td>
<td valign="top">
<table>
<tr>
平均不需要回声。
答案 4 :(得分:0)
如果您需要发送静态数据,可以将其直接放在PHP标记之外的代码中
例如:
<?php
echo "PHP Code";
?>
HTML code
<?php
echo "PHP Code again";
?>
此外,如果您想要创建PHP字符串,则需要保留PHP代码中的所有内容
例如:
<?php
echo "PHP Code";
$heredoc_variable = <<<HTMLCODE
<b> This is html code into a heredoc variable in php </b>
HTMLCODE;
?>
答案 5 :(得分:-1)
如果你真的需要它作为变量并且正在寻找一个非常简单的方法,那么只需将整个表单语法包含在带有转义引号的变量中,如下所示:
<?php
$output = "
<form method=\"post\" >
<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" id=\"reserv_table\">
<tr>
<td><span id=\"message\"><b>for you : 9€</b> </span></td>
<td><input type=\"text\" name=\"_membre\" id=\"_membre\" style=\"width: 40px;\" class=\"text disabled\" disabled=\"disabled\" /></td>
<td valign=\"top\">
<table>
<tr>
";
echo $output; //or wherever you need to echo it...
?>
这个方法是一个简单的解决方案,必须使用比ob_start()更少的资源;在我看来。