###やりたいこと
PHPのSimple HTML DOM Parserを用いてfindをするとき、正規表現で探したい。
php
1<?php 2require_once 'simple_html_dom.php'; 3mb_language('Japanese'); 4$url = "httpなんとかかんとか"; 5$buf = mb_convert_encoding(file_get_contents($url), 'UTF-8','auto'); 6$dom = str_get_html($buf); 7echo $dom 8foreach($dom->find( '[id=comment]') as $key => $element ){ 9 $element->outertext = ''; 10} 11echo $dom;
このようにすればurl先のhtmlのidがcommentの部分を削除できると思います。ただ、例えばidがCommentやcomMENTなどのように大文字小文字を無視してfindしたいのですが、ここで正規表現は使えるでしょうか?そもそも正規表現を使えばいいと思っていたのですが、
php
1 $buf = preg_replace("/<([\w]+)[^>]*?comment.*?>.*?<\/\\1>/ius","",$buf);
このようにしてしまうとタグが入れ子になった時などに予期しない削除となってしまうため、質問しました。
どうしても正規表現でfindしたい場合は、正規表現でマッチするか探して1つずつfindしていくといった方法になるのでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/11/17 05:14