回答編集履歴

5

誤字

2016/11/14 13:38

投稿

popobot
popobot

スコア6586

test CHANGED
@@ -68,7 +68,7 @@
68
68
 
69
69
  **(追記) これが正解かもしれません**
70
70
 
71
- さらに調べていたら(コードを読んでいたら)、findの第三引数をtrueにすると大文字小文字を区別しないで検索できるみたいでした...公式ドキュメントには書いてので、よく実験してみてください
71
+ さらに調べていたら(コードを読んでいたら)、findの第三引数をtrueにすると大文字小文字を区別しないで検索できるみたいでした...公式ドキュメントには書いてなさそうだったので、よくテストしてみてください
72
72
 
73
73
  ```php
74
74
 

4

補足

2016/11/14 13:38

投稿

popobot
popobot

スコア6586

test CHANGED
@@ -1,7 +1,3 @@
1
- 調べた限りだとfindで大文字小文字を区別しないみたいなオプションはなさそうでした。
2
-
3
-
4
-
5
1
  以下のようにまずはpreg_match_allで大文字小文字を区別しないcommentのパターンを抽出して、そのパターンすべてでfindしてはどうでしょうか
6
2
 
7
3
  ※若干処理は無駄ですが、実装はわりと簡単です。
@@ -67,3 +63,29 @@
67
63
  echo $dom . "\n";
68
64
 
69
65
  ```
66
+
67
+
68
+
69
+ **(追記) これが正解かもしれません**
70
+
71
+ さらに調べていたら(コードを読んでいたら)、findの第三引数をtrueにすると大文字小文字を区別しないで検索できるみたいでした...公式ドキュメントには書いていないので、よく実験してみてください
72
+
73
+ ```php
74
+
75
+ <?php
76
+
77
+ require_once 'simple_html_dom.php';
78
+
79
+ $html = "<html><body><div id='comment'></div><p>AAA</p><div id='Comment'></div><body></html>";
80
+
81
+ $dom = str_get_html($html);
82
+
83
+ foreach($dom->find("[id=comment]", null, true) as $key => $element ) {
84
+
85
+ $element->outertext = '';
86
+
87
+ }
88
+
89
+ echo $dom . "\n";
90
+
91
+ ```

3

補足

2016/11/14 13:17

投稿

popobot
popobot

スコア6586

test CHANGED
@@ -1,3 +1,7 @@
1
+ 調べた限りだとfindで大文字小文字を区別しないみたいなオプションはなさそうでした。
2
+
3
+
4
+
1
5
  以下のようにまずはpreg_match_allで大文字小文字を区別しないcommentのパターンを抽出して、そのパターンすべてでfindしてはどうでしょうか
2
6
 
3
7
  ※若干処理は無駄ですが、実装はわりと簡単です。

2

改良版

2016/11/14 13:10

投稿

popobot
popobot

スコア6586

test CHANGED
@@ -29,3 +29,37 @@
29
29
  ```
30
30
 
31
31
 
32
+
33
+ **(改良版)**
34
+
35
+ findをループするのではなく、カンマ区切りで複数指定する方法が多分パフォーマンスはいいと思うので、以下のようにしてみました。
36
+
37
+ ```php
38
+
39
+ <?php
40
+
41
+ require_once 'simple_html_dom.php';
42
+
43
+ $html = "<html><body><div id='comment'></div><p></p><div id='Comment'></div><body></html>";
44
+
45
+ preg_match_all("/comment/ius", $html, $matches);
46
+
47
+ $dom = str_get_html($html);
48
+
49
+ $patterns = array();
50
+
51
+ foreach($matches[0] as $id) {
52
+
53
+ $patterns[] = "[id=$id]";
54
+
55
+ }
56
+
57
+ foreach($dom->find(implode(',', $patterns)) as $key => $element ) {
58
+
59
+ $element->outertext = '';
60
+
61
+ }
62
+
63
+ echo $dom . "\n";
64
+
65
+ ```

1

補足

2016/11/14 13:08

投稿

popobot
popobot

スコア6586

test CHANGED
@@ -1,4 +1,6 @@
1
- 以下のようにまずはpreg_match_allで大文字小文字を区別しないcommentを抽出して、そのパターンすべてでfindしてはどうでしょうか
1
+ 以下のようにまずはpreg_match_allで大文字小文字を区別しないcommentのパターンを抽出して、そのパターンすべてでfindしてはどうでしょうか
2
+
3
+ ※若干処理は無駄ですが、実装はわりと簡単です。
2
4
 
3
5
  ```php
4
6
 
@@ -26,4 +28,4 @@
26
28
 
27
29
  ```
28
30
 
29
- ※若干処理は重いかもですが...
31
+