回答編集履歴

1

コメントを受けての追記

2018/05/18 11:20

投稿

takyafumin
takyafumin

スコア2335

test CHANGED
@@ -11,3 +11,101 @@
11
11
 
12
12
 
13
13
  リダリレクト先のURLを取得すれば、希望の動作となりそうですね。
14
+
15
+
16
+
17
+
18
+
19
+ ## コメントを受けての追記
20
+
21
+
22
+
23
+ 提示されたサイトへのアクセスを解析してみました。
24
+
25
+ ブラウザでアクセスしている時も、提示されたURLへアクセス後、同一URLへリダイレクトしていました。
26
+
27
+ (chromeのディベロッパーツールで確認)
28
+
29
+
30
+
31
+ なので、phpのcurlでアクセスする際も同様の動作をすれば良さそうです。
32
+
33
+ ただし、リダイレクトする際にcookieを利用しているようでした。
34
+
35
+ ですので、
36
+
37
+
38
+
39
+ * curlをリダイレクトするようにする
40
+
41
+ * リダイレクト時にcookieを使う
42
+
43
+
44
+
45
+ とすると動作するようです。
46
+
47
+
48
+
49
+
50
+
51
+ `curl_setopt`の指定内容はネット検索結果をかじっただけなので、正しくはマニュアルを確認してみて下さい。
52
+
53
+ `curl_setopt($curl, CURLOPT_HEADER, true);`としているので、レスポンス内容にhttpヘッダ情報が含まれます。不要であれば行ごと削除で。
54
+
55
+
56
+
57
+ ```php
58
+
59
+
60
+
61
+ <?php
62
+
63
+ // URL
64
+
65
+ $url = "https://www.co-medical.com/ns/search/?search_redirect=1&jobtype=OC001&jobtype_roma=ns&mode=popup";
66
+
67
+
68
+
69
+ // cookie
70
+
71
+ $cookie_file = "/tmp/test.cookie";
72
+
73
+
74
+
75
+
76
+
77
+ // 初期化
78
+
79
+ $curl = curl_init();
80
+
81
+
82
+
83
+ // オプション設定
84
+
85
+ curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
86
+
87
+ curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true); // リダイレクトをたどる
88
+
89
+ curl_setopt($curl, CURLOPT_AUTOREFERER, true); // リダイレクトにreferを自動でつける
90
+
91
+ curl_setopt($curl, CURLOPT_HEADER, true); // HEADERの表示
92
+
93
+ curl_setopt($curl, CURLOPT_COOKIEFILE, $cookie_file); // cookie
94
+
95
+ curl_setopt($curl, CURLOPT_COOKIEJAR, $cookie_file); // cookie
96
+
97
+ curl_setopt($curl, CURLOPT_URL, $url);
98
+
99
+
100
+
101
+ $html = curl_exec($curl);
102
+
103
+
104
+
105
+ var_dump($html);
106
+
107
+ curl_close($curl);
108
+
109
+
110
+
111
+ ```