teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

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

2016/04/27 13:46

投稿

ryamamoto
ryamamoto

スコア12

title CHANGED
@@ -1,1 +1,1 @@
1
- PHP GoutteでエラーをCatchしたい
1
+ Laravel5.1 GoutteでエラーをCatchしたい
body CHANGED
@@ -1,10 +1,17 @@
1
+ Laravel5.1でコマンドを作成しました。
1
- 外部から入力されたURLにGoutteでアクセスさせたいと思ってます。
2
+ コマンドでGoutteを使い、外部URLにアクセスさせたいと思っております。
2
3
  その際、URLのミスや、ネットワークエラーなどが原因で、
3
- 接続が出来ない時に例外をキャッチしたいのですが、うまくいきません。
4
+ 接続が出来ない時に例外をキャッチしたいのですが、「エラー」の文字が表示
5
+ されず、curlのエラが画面表示されます。
4
6
 
5
- スクリプトを実行すると、curlのエラーが表示されます。
6
- cURL error 6: Couldn't resolve host 'www.yahoo.co.jp2'
7
7
 
8
+ コマンドを実行すると、以下curlのエラーだけが表示されます。
9
+ (エラーメッセージ)
10
+ > [GuzzleHttp\Exception\ConnectException]
11
+ > cURL error 6: Couldn't resolve host 'www.yahoo.co.jp2'
12
+ > [GuzzleHttp\Ring\Exception\ConnectException]
13
+ > cURL error 6: Couldn't resolve host 'www.yahoo.co.jp2'
14
+
8
15
  どのようにしたら良いのでしょうか?
9
16
 
10
17
  何かお気付きの点などがあれば、
@@ -15,15 +22,23 @@
15
22
  ###該当のソースコード
16
23
  ```PHP
17
24
  <?php
18
- require_once __DIR__. '/vendor/autoload.php';
25
+ namespace App\Console\Commands;
26
+
27
+ use Illuminate\Console\Command;
19
28
  use Goutte\Client;
20
29
 
30
+ class ChecCommand extends Command
31
+ {
32
+ //...
33
+ public function handle()
34
+ {
21
- $client = new Client();
35
+ $client = new Client();
22
- try {
36
+ try {
23
- $crawler = $client->request('GET', 'http://www.yahoo.co.jp2');
37
+ $crawler = $client->request('GET', 'http://wwww.yahoo.co.jp2');
24
- $status = $client->getResponse()->getStatus();
38
+ $status = $client->getResponse()->getStatus();
25
- } catch (Exception $e) {
39
+ } catch (Exception $e) {
26
- echo $e->getMessage();
40
+ echo "エラー";
41
+ }
42
+ }
27
43
  }
28
- echo sprintf("status: %s\n", $status);
29
44
  ```