ใช้ PHP เรียก url แบบไม่ต้อง map host ที่เครื่อง

เวลาเขียนเวปเขียนโปรแกรม ไม่รู้ทำไมเวลาใช้งานแล้วจะต้องเรียก API ที่อื่นแล้วที่ตรงนั้นไม่ได้จด DNS ไว้ เรามีแค่ IP Address กับ Domain ที่จะต้องใช้ วิธีที่เราจะทำได้คือการ map host

หลังๆ มานี่ผมไม่นิยมกับการ map host แล้ว เพราะมันผูกติดกับ server แล้วเวลาจะยก code เราไปทำงานที่อื่นถ้าไม่ได้เอาพวกที่ map host ไว้มาด้วย โปรแกรมเราก็จะทำงานไม่ได้ คราวนี้จะทำยังไง?

ให้เราใช้วิธีการระบุ Header ลงไปเวลา call API อ่ะครับ อย่างเช่นใน

ถ้าใช้โปรแกรม curl บน bash shell

[shell]

curl -H "Host: engineerball.com" http://122.155.16.11

[/shell]

 

ถ้าใช้ php กับ curl

[php]

<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://122.155.16.155");
curl_setopt($ch, CURLOPT_HTTPHEADER, array(‘Host: engineerball.com));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$c = curl_exec($ch);
?>[/php]

เพียงเท่านี้ก็สามารถเรียก API แบบไม่ต้อง map host ได้แล้วครับผม

 

ball Written by:

Teerapat Khunpech Live, Tech, Beers, Bike, Cafe Racer, Docker, Devops, Eco-System