ポンコツエンジニアのごじゃっぺ開発日記。

いろいろポンコツだけど、気にするな。エンジニアの日々の開発などの記録を残していきます。 自動で収入を得られるサービスやシステムを作ることが目標!!

【PHP】curl_execするとレスポンス内容が標準出力される問題の解決策

curl_execを使って指定したURLにリクエストを投げる、ということができると思います。

メソッドを呼んでみる

ただ、何も考えずに使ってみると、

<?php

$ch = curl_init('http://localhost:8080/test');
curl_exec($ch);
curl_close($ch);

この例だと、localhostの8080ポートで、/testに対してOKを返す単純なAPIを作成したのですが、これに対して先程のPHPを実行してみると

$ php test.php
OK
$

のように、レスポンスのボディが出力されてしまっています。 どこにもechoとか書いてないのに。

対策

以下のように、CURLOPT_RETURNTRANSFERtrueとしてあげると良いみたいです。

<?php

$ch = curl_init('http://localhost:8080/test');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_exec($ch);
curl_close($ch);

これを実行してみると、

$ php test.php
$ 

無事、何も実行されずに指定のURLにリクエストを投げることができました。解決!

お問い合わせプライバシーポリシー制作物