回答編集履歴

2

typo

2018/02/02 07:51

投稿

yambejp
yambejp

スコア114883

test CHANGED
@@ -32,7 +32,7 @@
32
32
 
33
33
  test<div id="hoge1" class="hogehoge table-sample fugafuga" data-class="fuga">これもいる</div>test
34
34
 
35
- test<div id="hoge2" class="hogehoge fugafuga" data-class="table-sample ">これはいらない</div>test
35
+ test<div id="hoge2" class="hogehoge fugafuga" data-class="table-sample">これはいらない</div>test
36
36
 
37
37
  test<div>ごみ</div>
38
38
 

1

sample

2018/02/02 07:51

投稿

yambejp
yambejp

スコア114883

test CHANGED
@@ -13,3 +13,55 @@
13
13
  ```
14
14
 
15
15
  のように複雑になってくると文字列の評価ではやや無理がでてきます
16
+
17
+
18
+
19
+ # sample
20
+
21
+ たとえばこうしてください
22
+
23
+ ```PHP
24
+
25
+ mb_internal_encoding("UTF-8");
26
+
27
+ $str=<<<eof
28
+
29
+ test<div>ごみ</div>
30
+
31
+ test<div class="table-sample">これはいる</div>test
32
+
33
+ test<div id="hoge1" class="hogehoge table-sample fugafuga" data-class="fuga">これもいる</div>test
34
+
35
+ test<div id="hoge2" class="hogehoge fugafuga" data-class="table-sample ">これはいらない</div>test
36
+
37
+ test<div>ごみ</div>
38
+
39
+ eof;
40
+
41
+ $doc=new DOMDocument();
42
+
43
+ $doc->loadHTML("<meta http-equiv='Content-Type' content='text/html; charset=UTF-8' />\n".$str);
44
+
45
+ /* metaの指定をしないと文字化けすることがある */
46
+
47
+ $nodes = $doc->getElementsByTagName("div");
48
+
49
+
50
+
51
+ $a=[];
52
+
53
+ $pattern="/(^| )table-sample( |$)/";
54
+
55
+ foreach($nodes as $node){
56
+
57
+ if(preg_match($pattern,$node->getAttribute("class"))){
58
+
59
+ $a[]=$node->nodeValue;
60
+
61
+ };
62
+
63
+ }
64
+
65
+ print_r($a);
66
+
67
+ ```