使用simple_html_dom.php并提取行和列,但会丢失标签,如&
桌子使用simple_html_dom.php并提取行和列,但会丢失标签,如&,php,dom,Php,Dom,桌子 <table> <tr> <td>text <sub>1</sub></td> <td>text 2</td> <td>text <sup>3</sup></td> </tr> <tr> <td>text <sub>11</sub></td> <td>text 12
<table>
<tr>
<td>text <sub>1</sub></td>
<td>text 2</td>
<td>text <sup>3</sup></td>
</tr>
<tr>
<td>text <sub>11</sub></td>
<td>text 12</td>
<td>text <sup>13</sup></td>
</tr>
<tr>
<td>text <sub>1</sub></td>
<td>text 2</td>
<td>text <sup>3</sup></td>
</tr>
<tr>
<td>text 12</td>
<td>text 22</td>
<td>text 32</td>
</tr>
</table>
我想提取所有tr和td'并将所有td'存储在数据库表行中
我试过了
simple_html_dom.php
它可以很好地工作,但可以删除/删除/消除像1这样的标记
简而言之,1被1代替
我不想丢失标签1
解决这个问题的其他方法
提取&
在数组中,这样我就可以将每一行存储在一个数组中
有了这个我就有了
$tr[0]="
<td>text <sub>1</sub></td>
<td>text 2</td>
<td>text <sup>3</sup></td>
";
$tr[1]="
<td>text <sub>11</sub></td>
<td>text 12</td>
<td>text <sup>13</sup></td>
";
$tr[2]="
<td>text 12</td>
<td>text 22</td>
<td>text 32</td>
";
然后提取所有值并存储在数据库中
我希望解决方案按照上面指定的方式在数组中分隔行
或
在simple_html_dom.php中进行更改以解决此问题
任何其他解决方案
我甚至试过
$html = '<td class="header subject">T<sup>e</sup>x<sub>t</sub></td>';
//echo "<br>".$html;
$dom = new DOMDocument();
$dom->loadHTML( $html );
// Text
echo "<br>".$dom->getElementsByTagName("td")->item(0)->textContent;
但是标签文本被删除了,我得到了纯文本,下面删除了不需要的标签
$str1 = preg_replace('/width.*?>/', '> ', $str1);
$str1 = preg_replace('/<td style=.*?>/', '<td~> ', $str1);
$str1 = preg_replace('/<col >/', " ", $str1);
$str1 = preg_replace('/<div.*?>/', " ", $str1);
$str1 = preg_replace('/<\/div>/', " ", $str1);
$str1 = preg_replace('/<span.*?an>/', " ", $str1);
$str1 = preg_replace('/<tr >/', "<tr>", $str1);
$str1 = preg_replace('/<table.*?>/', "", $str1);
$str1 = preg_replace('/<\/table>/', "", $str1);
因为&标记被删除是最重要的
preg_split可以分隔数组中的行
$trr= preg_split('/<tr>/', $str1);
echo count($trr);
print_r($trr);
你的例子太复杂了。试着把问题提炼成更容易让新手理解的东西;echo Htmlenties$trstr;删除但无法存储输出,即数组中的每一行