質問編集履歴

1

内容を詳細に記載しました。

2016/04/27 13:46

投稿

ryamamoto
ryamamoto

スコア12

test CHANGED
@@ -1 +1 @@
1
- PHP GoutteでエラーをCatchしたい
1
+ Laravel5.1 GoutteでエラーをCatchしたい
test CHANGED
@@ -1,14 +1,28 @@
1
+ Laravel5.1でコマンドを作成しました。
2
+
1
- 外部から入力されたURLにGoutteでアクセスさせたいと思ってます。
3
+ コマンドでGoutteを使い、外部URLにアクセスさせたいと思っております。
2
4
 
3
5
  その際、URLのミスや、ネットワークエラーなどが原因で、
4
6
 
5
- 接続が出来ない時に例外をキャッチしたいのですが、うまくいきません。
7
+ 接続が出来ない時に例外をキャッチしたいのですが、「エラー」の文字が表示
8
+
9
+ されず、curlのエラが画面表示されます。
6
10
 
7
11
 
8
12
 
9
- スクリプトを実行すると、curlのエラーが表示されます。
10
13
 
14
+
15
+ コマンドを実行すると、以下curlのエラーだけが表示されます。
16
+
17
+ (エラーメッセージ)
18
+
19
+ > [GuzzleHttp\Exception\ConnectException]
20
+
11
- cURL error 6: Couldn't resolve host 'www.yahoo.co.jp2'
21
+ > cURL error 6: Couldn't resolve host 'www.yahoo.co.jp2'
22
+
23
+ > [GuzzleHttp\Ring\Exception\ConnectException]
24
+
25
+ > cURL error 6: Couldn't resolve host 'www.yahoo.co.jp2'
12
26
 
13
27
 
14
28
 
@@ -32,26 +46,42 @@
32
46
 
33
47
  <?php
34
48
 
35
- require_once __DIR__. '/vendor/autoload.php';
49
+ namespace App\Console\Commands;
50
+
51
+
52
+
53
+ use Illuminate\Console\Command;
36
54
 
37
55
  use Goutte\Client;
38
56
 
39
57
 
40
58
 
41
- $client = new Client();
59
+ class ChecCommand extends Command
42
60
 
43
- try {
61
+ {
44
62
 
45
- $crawler = $client->request('GET', 'http://www.yahoo.co.jp2');
63
+ //...
46
64
 
47
- $status = $client->getResponse()->getStatus();
65
+ public function handle()
48
66
 
49
- } catch (Exception $e) {
67
+ {
50
68
 
69
+ $client = new Client();
70
+
71
+ try {
72
+
73
+ $crawler = $client->request('GET', 'http://wwww.yahoo.co.jp2');
74
+
75
+ $status = $client->getResponse()->getStatus();
76
+
77
+ } catch (Exception $e) {
78
+
51
- echo $e->getMessage();
79
+ echo "エラー";
80
+
81
+ }
82
+
83
+ }
52
84
 
53
85
  }
54
86
 
55
- echo sprintf("status: %s\n", $status);
56
-
57
87
  ```