1

テーブル

<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を試しました

正常に動作しますが、タグを削除/削除/削除します <sub>1</sub> 。つまり <sub>1</sub>、1に置き換えられます。

タグをなくしたくない <sub>1</sub>

<tr> & </tr> これを解決する他の方法配列内のすべてを抽出して、各行を配列に格納できるようにし
ます(

$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;

しかし、タグT<sup>e</sup>x<sub>t</sub>が削除され、プレーンテキストが表示されます

4

1 に答える 1

0

以下は不要なタグを削除します

$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);

<table>&タグが削除されているため</table>(最も重要)、 preg_split は配列内の行を分離できます

$trr= preg_split('/<tr>/',  $str1); 
 echo count($trr); 
 print_r($trr); 
于 2013-01-21T17:53:57.490 に答える