質問編集履歴

12

修正

2018/02/02 17:11

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -2,11 +2,7 @@
2
2
 
3
3
 
4
4
 
5
- 【実験内容】以降の文字列を取得したいです。
5
+ 【実験内容】以降の文字列を取得した【結果③】が目標となります。
6
-
7
-
8
-
9
- 【結果③】が目標です。
10
6
 
11
7
 
12
8
 

11

修正

2018/02/02 17:10

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -106,7 +106,7 @@
106
106
 
107
107
 
108
108
 
109
- ※$body_textにstring(3113)"タイトル...【実験内容】.....【研究者】...【評価】...."のみを入れると上手くいきます。その場合var_dumpするとstring(3100)"【実験内容】.....【研究者】...【評価】....";になります。
109
+ ※$body_textにstring(3113)"タイトル...【実験内容】.....【研究者】...【評価】...."のみを入れると上手くいきます。その場合var_dump($result)するとstring(3100)"【実験内容】.....【研究者】...【評価】....";になります。
110
110
 
111
111
 
112
112
 

10

修正

2018/02/02 17:08

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -66,7 +66,7 @@
66
66
 
67
67
  //結果①
68
68
 
69
- //var_dump($result);
69
+ //var_dump($body_text);
70
70
 
71
71
  //結果②
72
72
 

9

修正

2018/02/02 17:07

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -63,6 +63,10 @@
63
63
  );
64
64
 
65
65
 
66
+
67
+ //結果①
68
+
69
+ //var_dump($result);
66
70
 
67
71
  //結果②
68
72
 

8

追記

2018/02/02 17:07

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -1,8 +1,12 @@
1
- preg_matchが上手くいかず、$resultの中身が下記のようになってしまいます。
1
+ preg_matchを使った正規表現での取得が上手くいかず、$resultの中身が下記【結果②】のようになってしまいます。
2
2
 
3
3
 
4
4
 
5
- 【実験内容】以降を取得したいです。
5
+ 【実験内容】以降の文字列を取得したいです。
6
+
7
+
8
+
9
+ 【結果③】が目標です。
6
10
 
7
11
 
8
12
 
@@ -24,13 +28,29 @@
24
28
 
25
29
 
26
30
 
27
- // 取得した文字列
31
+ // 取得した文字列
28
32
 
29
- $body_text="各ページから取得した文字列が入っています";
33
+ $body_text="タイトル...【実験内容】.....【研究者】...【評価】....";
30
34
 
31
35
 
32
36
 
37
+ //file_gets_contensで各ページのURL及び内容は取得できています。
38
+
39
+ //その各ページの内容に【実験内容】という文字が含まれています。
40
+
41
+ //各ページの【実験内容】以降を取得したいです。
42
+
43
+ //下記のコード②のようにstrposだと上手【実験内容】以降が取得できます。
44
+
45
+ //誤字脱字お許しください。
46
+
47
+ //【結果③】を目指しています。
48
+
49
+
50
+
51
+
52
+
33
- // 【実験内容】含む以降を取得してみる
53
+ // 【実験内容】含む以降preg_match使って取得してみる
34
54
 
35
55
  preg_match(
36
56
 
@@ -44,6 +64,8 @@
44
64
 
45
65
 
46
66
 
67
+ //結果②
68
+
47
69
  var_dump($result);
48
70
 
49
71
 
@@ -56,13 +78,13 @@
56
78
 
57
79
  $body_text→var_dump
58
80
 
59
- 【結果】
81
+ 【結果
60
82
 
61
- string(3113)"...【実験内容】"
83
+ string(3113)"タイトル...【実験内容】.....【研究者】...【評価】...."
62
84
 
63
- string(4569)"...【実験内容】"
85
+ string(4569)"タイトル...【実験内容】.....【研究者】...【評価】...."
64
86
 
65
- string(7031)"...【実験内容】"
87
+ string(7031)"タイトル...【実験内容】.....【研究者】...【評価】...."
66
88
 
67
89
 
68
90
 
@@ -70,7 +92,7 @@
70
92
 
71
93
  $result→var_dump
72
94
 
73
- 【結果】
95
+ 【結果
74
96
 
75
97
  array(0) { }
76
98
 
@@ -80,33 +102,19 @@
80
102
 
81
103
 
82
104
 
83
- ※$body_textに".....【実験内容】....";のみを入れた場合は上手くいきます。その場合var_dumpするとstring(3113)のみなります。
105
+ ※$body_textにstring(3113)"タイトル...【実験内容】.....【研究者】...【評価】...."のみを入れると上手くいきます。その場合var_dumpするとstring(3100)"【実験内容】.....【研究者】...【評価】....";になります。
84
106
 
85
107
 
86
108
 
87
- 取得したいページの内容
88
109
 
89
110
 
90
111
 
91
- 【タイトル】...
92
112
 
113
+ ```PHP
93
114
 
115
+ //上手くいったパターン
94
116
 
95
- 【実験内容】.....
96
-
97
-
98
-
99
- 【研究者】...
100
-
101
-
102
-
103
- 【評価】....
104
-
105
-
106
-
107
- ※こういう内容のペジが数十ページあります。
117
+ //コド②
108
-
109
- ※ちなみに下記のコードだと上手くいきます。
110
118
 
111
119
 
112
120
 
@@ -119,3 +127,21 @@
119
127
  //【以降を取得
120
128
 
121
129
  $result=substr($body_text, $sample);
130
+
131
+
132
+
133
+ var_dump($result);
134
+
135
+ ?>
136
+
137
+ ```
138
+
139
+
140
+
141
+ 【結果③】
142
+
143
+ string(3100)"【実験内容】.....【研究者】...【評価】...."
144
+
145
+ string(4502)"【実験内容】.....【研究者】...【評価】...."
146
+
147
+ string(7003)"【実験内容】.....【研究者】...【評価】...."

7

修正

2018/02/02 17:05

投稿

退会済みユーザー
test CHANGED
@@ -1 +1 @@
1
- PHPのpreg_matchを使った正規表現が上手くきなです。
1
+ PHPのpreg_matchを使った正規表現で特定の文字以降を取得した
test CHANGED
@@ -1,4 +1,8 @@
1
1
  preg_matchが上手くいかず、$resultの中身が下記のようになってしまいます。
2
+
3
+
4
+
5
+ 【実験内容】以降を取得したいです。
2
6
 
3
7
 
4
8
 
@@ -84,6 +88,10 @@
84
88
 
85
89
 
86
90
 
91
+ 【タイトル】...
92
+
93
+
94
+
87
95
  【実験内容】.....
88
96
 
89
97
 

6

修正

2018/02/02 16:29

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -1,4 +1,4 @@
1
- preg_matchが上手かず、$resultの中身が下記のようになってしまいます。
1
+ preg_matchが上手くいかず、$resultの中身が下記のようになってしまいます。
2
2
 
3
3
 
4
4
 

5

一部追記

2018/02/02 16:19

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -77,3 +77,37 @@
77
77
 
78
78
 
79
79
  ※$body_textに".....【実験内容】....";のみを入れた場合は上手くいきます。その場合var_dumpするとstring(3113)のみなります。
80
+
81
+
82
+
83
+ 取得したいページの内容
84
+
85
+
86
+
87
+ 【実験内容】.....
88
+
89
+
90
+
91
+ 【研究者】...
92
+
93
+
94
+
95
+ 【評価】....
96
+
97
+
98
+
99
+ ※こういう内容のページが数十ページあります。
100
+
101
+ ※ちなみに下記のコードだと上手くいきます。
102
+
103
+
104
+
105
+ //strposを使う方法
106
+
107
+ //【の位置を見つける
108
+
109
+ $sample=strpos($body_text, "【");
110
+
111
+ //【以降を取得
112
+
113
+ $result=substr($body_text, $sample);

4

一部修正

2018/02/02 16:19

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -22,7 +22,7 @@
22
22
 
23
23
  // 取得したい文字列
24
24
 
25
- $body_text=".....【実験内容】....";
25
+ $body_text="各ページから取得した文字列が入っています";
26
26
 
27
27
 
28
28
 

3

一部修正

2018/02/02 16:15

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -7,6 +7,46 @@
7
7
 
8
8
 
9
9
  下記のコードの中身をそれぞれ確認した結果が以下になります。
10
+
11
+
12
+
13
+
14
+
15
+ ```PHP
16
+
17
+
18
+
19
+ <?
20
+
21
+
22
+
23
+ // 取得したい文字列
24
+
25
+ $body_text=".....【実験内容】....";
26
+
27
+
28
+
29
+ // 【実験内容】含む以降を取得してみる
30
+
31
+ preg_match(
32
+
33
+ '/【実験内容】.+/u',
34
+
35
+ $body_text,
36
+
37
+ $result
38
+
39
+ );
40
+
41
+
42
+
43
+ var_dump($result);
44
+
45
+
46
+
47
+ ?>
48
+
49
+ ```
10
50
 
11
51
 
12
52
 
@@ -37,41 +77,3 @@
37
77
 
38
78
 
39
79
  ※$body_textに".....【実験内容】....";のみを入れた場合は上手くいきます。その場合var_dumpするとstring(3113)のみなります。
40
-
41
-
42
-
43
- ```PHP
44
-
45
-
46
-
47
- <?php
48
-
49
-
50
-
51
- // 取得したい文字列
52
-
53
- $body_text=".....【実験内容】....";
54
-
55
-
56
-
57
- // 【実験内容】含む以降を取得してみる
58
-
59
- preg_match(
60
-
61
- '/【実験内容】.+/u',
62
-
63
- $body_text,
64
-
65
- $result
66
-
67
- );
68
-
69
-
70
-
71
- var_dump($result);
72
-
73
-
74
-
75
- ?>
76
-
77
- ```

2

一部修正

2018/02/02 16:13

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -3,6 +3,10 @@
3
3
 
4
4
 
5
5
  詳しい方いましたらお願いします。
6
+
7
+
8
+
9
+ 下記のコードの中身をそれぞれ確認した結果が以下になります。
6
10
 
7
11
 
8
12
 

1

タイトル修正

2018/02/02 16:12

投稿

退会済みユーザー
test CHANGED
@@ -1 +1 @@
1
- PHPのpreg_matchを使った正規表現上手くいかない
1
+ PHPのpreg_matchを使った正規表現上手くできないです。
test CHANGED
File without changes