การใช้ base64_encode ใน URL แบบไร้ปัญหา

จำนวนการเปิดอ่าน 62
คะแนนเอกสาร

ตัว base64 มันจะมีบางตัวที่ พอไปอยู่บน URL แล้วจะถูกแปลงเป็นรหัส เช่น เครื่องหมาย + ที่จะถูกแปลงเป็น วรรค ซึ่งมันจะมีปัญหา เมื่อเอามาใช้งาน (ตัวอักษรมันถูกเปลี่ยน)

เรามี function ใหม่สำหรับแปลง base64 เพื่อใช้กับ URL ได้ ดังข้างล่างนี้

function base64_url_encode($input) {
    return strtr(base64_encode($input), '+/=', '-_,');
}

function base64_url_decode($input) {
    return base64_decode(strtr($input, '-_,', '+/='));
}

จริงๆ มันไม่มีอะไรเลย แค่ เปลี่ยนพวกตัวอักษร ที่จะถูกแปลงเมื่อกลายเป็น URL ไปใช้ตัวที่ไม่ถูกแปลง เท่านั้นเอง

วิธีใช้ก็แค่ เปลี่ยนจาก base64_encode ไปใช้ base64_url_encode แทน และ base64_decode ไปใช้ base64_url_decode แทน ครับผม