タグが閉じていないHTMLソースを取り出す方法。
HTMLソースを部分的に取り出したい時に下記のように
タグが閉じていない場合がありました。(終わりの
が存在しません)
元のソースの確認
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
<p> <div class="test">サンプルA</div> <div class="item>アイテムA-1</div> <div class="item>アイテムA-2</div> <p> <div class="test">サンプルB</div> <div class="item>アイテムB-1</div> <div class="item>アイテムB-2</div> <p> <div class="test">サンプルC</div> <div class="item>アイテムC-1</div> <div class="item>アイテムC-2</div> |
ソースをテキストエディタなどで置換
<p>を
——————
<p>
<p>
—————–
と改行を入れたものに置換します。
最初と最後だけ、<p>を1つにします。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
<p> <div class="test">サンプルA</div> <div class="item>アイテムA-1</div> <div class="item>アイテムA-2</div> <p> <p> <div class="test">サンプルB</div> <div class="item>アイテムB-1</div> <div class="item>アイテムB-2</div> <p> <p> <div class="test">サンプルC</div> <div class="item>アイテムC-1</div> <div class="item>アイテムC-2</div> <p> |
preg_match_allで繰り返し取り出す
preg_match_all( ‘/(<p>.+?)<p>/su’, $source, $match );
foreach ( $match[1] as $var )
{
echo $var."<br />";
}
こんな感じで取り出すことができます。
そんなに多くは遭遇しないですが、タマに出くわすと忘れているのでメモでした。
人気記事一覧
- MySQL 最大の値・最新の日付データを1つ抽出する方法(MAX)
- [CakePHP] XformHelperの使い方
- Linux: スワップファイル(swp)の削除方法
- HTMLのForm methodとactionについて
- PHPでカンマ区切りデータを配列に入れる方法 (explode)
- [エラー対処] failed to open stream: No such file or directory
- [CSS]ブロック要素(div)の高さを、内部のfloat要素に合わせて自動調整する
- [vsftp] FileZillaから接続できない場合の対処法
- PHP5.1→PHP5.3へバージョンアップする方法(CentOS)
- PHPでテキストを1行ずつ読み込む方法(file_get_contents,explode)