回答編集履歴

1

DOM部分の修正

2015/06/18 03:01

投稿

nanndemoiikara
nanndemoiikara

スコア775

test CHANGED
@@ -1,9 +1,67 @@
1
+ 本当はclassとかにした方がいいと思いますがめんどくさいので。。。
2
+
3
+ とりあえずsampleのanchorタグのみ取得です。
4
+
5
+ できればbase_urlはfunction内ではなくconfigとかに持たせた方が便利です。
6
+
7
+
8
+
1
9
  ```lang-php
2
10
 
3
- $base_url = 'http://localhost/';
11
+ <?php
4
12
 
5
- $uri_str = 'http://localhost/hogehoge';
6
13
 
14
+
15
+ /**
16
+
17
+ * strip_base_uri
18
+
19
+ * @param stirng $str
20
+
21
+ * @return string
22
+
23
+ **/
24
+
25
+ function strip_base_url($str)
26
+
27
+ {
28
+
29
+ $base_url = 'http://localhost/';
30
+
7
- echo str_replace(rtrim($base_url, '/'), '', $uri_str);
31
+ return str_replace(rtrim($base_url, '/'), '', $str);
32
+
33
+ }
34
+
35
+
36
+
37
+ $dom = new DOMDocument;
38
+
39
+ $dom->preserveWhiteSpace = false;
40
+
41
+ $dom->formatOutput = true;
42
+
43
+ @$dom->loadHTMLFile('./hoge.html');
44
+
45
+
46
+
47
+ //TODO:Anchorだけ?
48
+
49
+ $anchors = $dom->getElementsByTagName('a');
50
+
51
+ foreach ( $anchors as $val )
52
+
53
+ {
54
+
55
+ $href_str = $val->getAttribute('href');
56
+
57
+ if ( ! $href_str || substr($href_str, 0, 1) === '#' ) continue;
58
+
59
+
60
+
61
+ $val->setAttribute('href', strip_base_url($href_str));
62
+
63
+ }
64
+
65
+ echo $dom->saveHTML();
8
66
 
9
67
  ```