質問編集履歴

1

プログラムを変更しました。。

2016/10/20 04:48

投稿

miyagi1987
miyagi1987

スコア32

test CHANGED
File without changes
test CHANGED
@@ -18,15 +18,17 @@
18
18
 
19
19
  ```ここに言語を入力
20
20
 
21
+ $html = '<link>テスト|http://yahoo.co.jp</link>aaaaaa<link>テスト2|http://google.co.jp</link>';
22
+
23
+
24
+
21
25
  if ( preg_match_all('/<link>(.*)?<\/link>/', $html, $src) ) {
22
26
 
23
- if ( is_array($src[0]) ) {
27
+ if ( is_array($src[1]) ) {
24
28
 
25
- foreach ( $src[0] as $val ) {
29
+ foreach ( $src[1] as $val ) {
26
30
 
27
- if ( preg_match_all('(https?://[-_.!~*\'()a-zA-Z0-9;/?:@&=+$,%#]+)', $val, $match_url) ) {
31
+ $arr[] = explode('|', $val);
28
-
29
- }
30
32
 
31
33
  }
32
34
 
@@ -34,12 +36,24 @@
34
36
 
35
37
  }
36
38
 
39
+
40
+
41
+ foreach ( $arr as $key => $val ) {
42
+
43
+ $str = $val[0];
44
+
45
+ $url = $val[1];
46
+
47
+ $html = preg_replace( "/<link>(.*)?<\/link>/", "<a href='$url' target='_blank'>$str</a>", $html);
48
+
49
+ }
50
+
51
+ echo $html;
52
+
37
53
  ```
38
54
 
39
55
 
40
56
 
41
- リンク場合、文字とURLを検出し、preg_replaceでHTMLタグ変換しいのですが
57
+ 上記ようにタグ変換しのですが、複数タグだと、上書かれてしまいます。
42
58
 
43
- ここから先が実装に悩んでおります。
44
-
45
- アドバイスなど頂けと幸いです。
59
+ 複数タグにも対応できようにしたいです。