php echo html没有引号和空格

时间:2012-05-29 21:40:20

标签: php html

我正在尝试回显自动生成的html表单元素,但页面始终将html代码显示为文本。当我通过Chrome检查输出时,它会显示生成的带有引号和空格的表单输入。以下是我的尝试和结果:

以下是代码生成整个表单

<form action="<?php echo url_for('/survey/submit?id='.$Survey->getId()) ?>" method="post">
    <ul>
    <?php foreach($Questions as $Question): ?>
        <li><?php echo $Question->questionHtml() ?></li>
    <?php endforeach; ?>
    </ul>
</form>

以下是一个示例结果:

"<li>
                                <input class="survey" size="40" type="text" name="Sample Survey[input_1]" id="Sample_Survey_input_1" />             </li>"

我也试过了。

echo htmlentities($Question->questionHtml())
"
                                &lt;input class=&quot;survey&quot; size=&quot;40&quot; type=&quot;text&quot; name=&quot;Sample Survey[input_1]&quot; id=&quot;Sample_Survey_input_1&quot; /&gt;             "

问题是我无法在页面上显示这些生成的表单元素,只能使用纯文本格式。

2 个答案:

答案 0 :(得分:1)

如果它显示您需要解码html实体的代码

echo html_entity_decode( $Question->questionHtml() );

http://www.php.net/manual/en/function.html-entity-decode.php

<强> BUT

不应该这样做。 questionHtml()函数应该只将表单值转换为它们的实体,而不是整个表单。

答案 1 :(得分:0)

如果$Question->questionHtml()回显正确的HTML,那么您只需使用trim()删除空格。