0

私はこのhtmlコードを持っています

<span><style>
.p9Wu{display:none}
.JOz4{display:inline}
.nitJ{display:none}
.pIj0{display:inline}
.AU2Q{display:none}
.vDdS{display:inline}
.THa1{display:none}
.mRy1{display:inline}
</style><span style="display: inline">69</span><span class="JOz4">.</span><span style="display:none">21</span><div style="display:none">21</div><span style="display: inline">65</span><span style="display:none">212</span><span class="AU2Q">212</span><span style="display: inline">.</span><span class="144">46</span><span style="display:none">69</span><span class="237">.</span><span style="display:none">11</span><span class="AU2Q">11</span><div style="display:none">11</div><div style="display:none">36</div><span style="display: inline">60</span><div style="display:none">152</div></span>

ブラウザで表示すると、これが表示されます69.65.46.60 PHPを使用してhtmlを削除し、テキストのみを残したい69.65.46.60

クラスに表示を取得するためのパターンの記述方法がわからない最初の問題:nonepreg_replaceが長すぎるという2番目の問題。誰かが私がそれを短くするのを手伝ってもらえますか?ありがとう

これは私のphpコードです

$html = preg_replace('~<div([^>]*)(class\\s*=\\s*["\']p9Wu["\'])([^>]*)>(.*?)</div>~i', '', $html);
$html = preg_replace('~<div([^>]*)(class\\s*=\\s*["\']nitJ["\'])([^>]*)>(.*?)</div>~i', '', $html);
$html = preg_replace('~<div([^>]*)(class\\s*=\\s*["\']AU2Q["\'])([^>]*)>(.*?)</div>~i', '', $html);
$html = preg_replace('~<div([^>]*)(class\\s*=\\s*["\']THa1["\'])([^>]*)>(.*?)</div>~i', '', $html);

$html = preg_replace('~<span([^>]*)(class\\s*=\\s*["\']p9Wu["\'])([^>]*)>(.*?)</span>~i', '', $html);
$html = preg_replace('~<span([^>]*)(class\\s*=\\s*["\']nitJ["\'])([^>]*)>(.*?)</span>~i', '', $html);
$html = preg_replace('~<span([^>]*)(class\\s*=\\s*["\']AU2Q["\'])([^>]*)>(.*?)</span>~i', '', $html);
$html = preg_replace('~<span([^>]*)(class\\s*=\\s*["\']THa1["\'])([^>]*)>(.*?)</span>~i', '', $html);

$html = preg_replace('~<div([^>]*)(style\\s*=\\s*["\']display:none["\'])([^>]*)>(.*?)</div>~i', '', $html);
$html = preg_replace('~<span([^>]*)(style\\s*=\\s*["\']display:none["\'])([^>]*)>(.*?)</span>~i', '', $html);

$html = preg_replace('@<style[^>]*?>.*?</style>@siu', '', $html);

$html = strip_tags($html);
4

2 に答える 2

0

あなたはこのようにこれをしなければなりません

スパンタグを開くには、このpregを使用します

preg_replace('~\<span[^\>]*\>~is', '', $html);

スパンタグを閉じるには、このpregを使用します

preg_replace('~\<\/span\>~is', '', $html);

divタグを開くには、このpregを使用します

preg_replace('~\<div[^\>]*\>~is', '', $html);

divタグを閉じるには、このpregを使用します

preg_replace('~\<\/div\>~is', '', $html);

スタイルタグなしの場合はこれを使用してください

preg_replace('/<style\b[^>]*>(.*?)<\/style>/is', "", $html);

これがすべてのタグを削除し、テキストのみが残るのに役立つことを願っています...

于 2012-09-13T06:25:33.810 に答える
0

次のように、div と span をまとめてクランチできます。

$html = preg_replace('~<(div|span)([^>]*)(class\\s*=\\s*["\'](p9Wu|nitJ|AU2Q|THa1)["\'])([^>]*)>(.*?)</\1>~i', '', $html);
$html = preg_replace('~<(div|span)([^>]*)(style\\s*=\\s*["\']display:none["\'])([^>]*)>(.*?)</\1>~i', '', $html);

$html = preg_replace('@<style[^>]*?>.*?</style>@siu', '', $html);

$html = strip_tags($html);
于 2012-09-13T06:19:03.280 に答える