ローカルで開発している場合に、ドメイン名をhostsに書いて特定のドメイン名でローカルホストに接続できるようにする。
/etc/hosts記述の例:
127.0.0.1 example.com
プログラム中でhttp接続する場合は、プログラムが動いているサーバの/etc/hostsを編集すれば、同じように特定のドメイン名で任意のIPアドレスのサーバに接続できる。
$curl = curl_init("http://exsample.com");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$output = curl_exec($curl);
このプログラムはhostsにexample.comの記述があればhosts指定のIPに接続し、
記述がなければhttp://exsample.comに接続しする。
レンタルサーバなど/etc/hostsを触れない場合や、テストモード/本番モードで接続先を変更したいときは、curlのヘッダーにHostを指定することでhostsファイルに設定を書くのと同じように接続を分けることができる。
ホスト名exsample.comでhttp://127.0.0.1に接続するプログラム
$curl = curl_init("http://127.0.0.1");
curl_setopt($curl, CURLOPT_HTTPHEADER, ['Host: exsample.com']);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$output = curl_exec($curl);
$mode=TEST ならば http://127.0.0.1 、そうでなければ exsample.com に接続するプログラム
if($mode == 'TEST'){
$url = "http://127.0.0.1";
}
else{
$url = "exsample.com";
}
$curl = curl_init("http://127.0.0.1");
curl_setopt($curl, CURLOPT_HTTPHEADER, ['Host: exsample.com']);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$output = curl_exec($curl);