PHP和HTML标记的奇怪问题

时间:2013-09-06 20:04:57

标签: php html string

我的html代码有一个奇怪的问题。

我想将变量$htmlstring添加到<p>代码。

我做

 $finalHtml .= '<p class="text">'.$htmlString.'</p>';

我的$htmlstring包含类似

的内容
<span>texts….</span>
<span>texts….</span>
<span>texts….</span>
<span>texts….</span>
<span>texts….</span>

<table>
    <tr>
       <td>cell</td>
      <td>cell</td>
      <td>cell</td>
     </tr>
    more….
</table>

<span>more texts</span>
<span>more texts</span>

我希望我的结果变得像

<p class='text'>
     <span>texts….</span>
    <span>texts….</span>
    <span>texts….</span>
    <span>texts….</span>
   <span>texts….</span>

   <table>
     <tr>
        <td>cell</td>
       <td>cell</td>
       <td>cell</td>
      </tr>
      more….
   </table>
   <span>more texts</span>
   <span>more texts</span>
</p>

但我得到了

//p tag only wraps texts before my table element.
<p class='text'>
     <span>texts….</span>
    <span>texts….</span>
    <span>texts….</span>
    <span>texts….</span>
   <span>texts….</span>
</p>

   <table>
     <tr>
        <td>cell</td>
       <td>cell</td>
       <td>cell</td>
      </tr>
      more….
   </table>
   <span>more texts</span>
   <span>more texts</span>

任何人都可以帮我解决这个奇怪的问题吗?非常感谢!

2 个答案:

答案 0 :(得分:6)

那是因为p无法容纳block元素(table)。

使用div代替p aragraph。

答案 1 :(得分:0)

您是否尝试通过验证程序运行代码?

验证员会告诉你,你不能把

 <p> <table> ...

<table> <p> 

退房: http://validator.w3.org/