สำหรับใครที่ต้องการแปลงภาพจาก URL ของภาพสามารถใช้ ฟังก์ชัน file_get_contents() ได้ในกรณี Server ปลายทางอนุญาติให้เราเข้าไปอ่านขอมูล ได้ allow_url_fopen
เป็น true เราสามารถอ่านไฟล์ และ save ไฟล์ได้ง่ายๆ เลย
$url = 'http://example.com/image.php';
$img = '/my/folder/flower.png';
file_put_contents($img, file_get_contents($url));
แต่ถ้าปลายทางไม่อนุญาติ ก็อาจต้องใช้ curl หรือ web service ช่วย
ตัวอย่างด้านล่างนี้เป็นการใช้ web service ช่วยส่ง url หน้าเว็บเพจ หรือ url ไฟล์ภาพ และ แปลงกลับมาเป็นไฟล์ภาพ
ตัวอย่างแรก เป็นการแปลง URL ที่เป็น HTML ของหน้าเว็บเป็นไฟล์ภาพ จาก webservice
<?php
$url = 'https://www.mindphp.com/forums/index.php'; // หน้าเว็บที่ต้องการแปลงเป็นไฟล์ภาพ
$api_endpoint = '[Web Service Server]';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $api_endpoint . $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERPWD, 'demo' . ":" . 'demo');
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
$output = curl_exec($ch);
header ('Content-Type: image/jpg'); // บอก Browser ว่าให้แสดงเป็นไฟล์ภาพ
echo $output;
exit();
?>
ส่วนนี้ถ้าต้องการให้ ผู้ใช้ ดาวน์โหลดไฟล์ภาพออกไปสามารถใช้ header ด้านล่างนี้ เพิ่มเข้าไปก่อน echo ได้
header("Cache-Control: no-store, no-cache");
header('Content-Disposition: attachment; filename="mindphp-download.jpg"');
ตัวอย่างที่สอง เป็นการแปล URL ของหน้าเว็บเป็นไฟล์ภาพ จาก Webservice
<?php
$url = 'https://www.mindphp.com/forums/index.php';
$api_endpoint = '[URL Web Service]';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $api_endpoint . $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERPWD, 'demo' . ":" . 'demo');
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
$output = curl_exec($ch);
file_put_contents('tmp1.jpg', $output); // ตั้งชื่อไฟล์ภาพ และเขียนลงไฟล์ด้วย ฟังก์ชั่น
?>
อ่านเพิ่มเพิ่มรายละเอียดการใช้ฟังก์ชั่น ฟังก์ชัน file_put_contents()
ตัวอย่างไฟล์ ภาพจากตัวอย่าง URL นี้ ไฟล์นี้ไม่ได้ ย่อ เป็นไฟล์ต้นฉบับที่ได้จากการแปลงจะเห็นว่า ทุกอย่างเหมือนกับการที่เราเปิดหน้าจอ แล้ว capture ภาพเลย
ใครสนใจ ทดลองใช้ Web Service แปลง URL ของหน้าเว็บเป็นภาพ ติดต่อได้ที่นี่