PHP和HTML标记的奇怪问题

Fly*_*Cat 1 html php string

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

我想将一个变量添加$htmlstring<p>标签中.

我做

 $finalHtml .= '<p class="text">'.$htmlString.'</p>';
Run Code Online (Sandbox Code Playgroud)

我的$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>
Run Code Online (Sandbox Code Playgroud)

我希望我的结果变得像

<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>
Run Code Online (Sandbox Code Playgroud)

但我得到了

//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>
Run Code Online (Sandbox Code Playgroud)

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

Rie*_*u͢s 6

那是因为p无法持有一个block元素(table).

使用a div代替你的paragraph.