การแปลงลิงค์เพื่อส่งออกภายนอก
เราคงเคยเห็นตัวอย่างการบล๊อก URL ของอีเมล์ หรือ การทำลิงค์ เพื่อ redirect ออก นอกเว็บไซต์ โดยผ่าน URL ของเว็บเอง ตามเว็บไซต์ต่างๆ กันมาบ้างแล้ว หลักการของมันก็คือการแปลง URL ที่กรอกมาให้เป็น URL อื่นๆ ดังโค้ด
ฟังก์ชั่น preg_replace จะทำการตรวจสอบว่าเป็น url โดยใช้ flag e เพื่อให้ประมวลผลฟังก์ชั่นได้
ฟังก์ชั่น changeURL จะทำหน้าที่ในการแปลง URL ให้มีรูปแบบตามที่ต้องการ
<?php
$data = '<a href="http://www.test.com">test</a>';
$match = '/(<a.*?href=")(http:\/\/.*?)(".*?>.*?<\/a>)/e';
$replace ='"\\1".changeURL("\\2")."\\3"';
echo preg_replace($match, $replace, $data);
function changeURL($url){
return 'http://www.me.com/redirect.php?url='.rawurlencode($url);
};
?>
ฟังก์ชั่น preg_replace จะทำการตรวจสอบว่าเป็น url โดยใช้ flag e เพื่อให้ประมวลผลฟังก์ชั่นได้
ฟังก์ชั่น changeURL จะทำหน้าที่ในการแปลง URL ให้มีรูปแบบตามที่ต้องการ