در زبان php دو تابع به نامهای base64_encode و base64_decode وجود دارد که برای کد کردن اطلاعات مورد استفاده قرار میگیرند. این توابع در نسخههای ۴ و ۵ زبان php وجود دارند و امکان استفاده از آنها در نسخههای قدیمیتر امکانپذیر نیست. همانطور که از نام این توابع پیداست، تابع base64_encode برای کد کردن اطلاعات و تابع base64_decode برای کدگشایی اطلاعات(اطلاعات کد شده) مورد استفاده قرار میگیرد. در این آموزش میخواهیم با نحوه کارکرد این دو تابع آشنا شویم.
[divider]
کد کردن اطلاعات:
همانطور که در ابتدا نیز اشاره شد، برای کد کردن اطلاعات از تابع base64_encode استفاده میکنیم. اطلاعات کدشده توسط این تابع، نسبت به اطلاعات اصلی به میزان ۳۳ درصد فضای بیشتری برای ذخیره سازی نیاز دارند. این تابع به صورت زیر تعریف میشود:
string base64_encode( string $data )
از این تعریف میفهمیم که این تابع رشتهای را به عنوان پارامتر ورودی میپذیرد و در خروجی رشتهای را به ما میدهد که همان اطلاعات رمز شده است($data). به مثال زیر توجه کنید:
<?php $str = 'This is an encoded string'; echo base64_encode($str); ?>
اگر چنین کدی را اجرا کنیم، خروجی به این صورت نمایش داده خواهد شد:
VGhpcyBpcyBhbiBlbmNvZGVkIHN0cmluZw==
در واقع ما توانستهایم رشتهای را که حاوی متن ‘This is an encoded string’ بود، کدگذاری کنیم.
[divider]
کدگشایی اطلاعات:
برای کدگشایی اطلاعات(اطلاعاتی که قبلا کدگذاری شدهاند) از تابع base64_decode استفاده میکنیم. این تابع نیز به صورت زیر تعریف میشود:
string base64_decode( string $data [, bool $strict = false ] )
با توجه به تعریف این تابع، باید اطلاعات کدگذاری شده را به عنوان پارامتر ورودی به این تابع بدهیم و در خروجی اطلاعات کدگشایی شده را دریافت کنیم. متغیر bool که در تعریف تابع به صورت پارامتر اختیاری قرار دارد، از نسخه ۵٫۲٫۰ زبان php به تعریف این تابع اضافه شده است. کاربرد این متغیر اختیاری به این صورت است که اگر به عنوان ورودی(همراه با اطلاعات کد شده)، متغیری از نوع bool نیز به تابع بدهیم و در اطلاعات کدشده کاراکتری خارج از محدوده الفبای base64 وجود داشته باشد، این متغیر پس از اجرای تابع مقدار false خواهد داشت. به مثال زیر توجه کنید:
<?php $str = 'VGhpcyBpcyBhbiBlbmNvZGVkIHN0cmluZw=='; echo base64_decode($str); ?>
پس از اجرای کد فوق خروجی زیر را خواهیم داشت:
This is an encoded string
به همین سادگی توانستیم اطلاعات کدگذاری شده توسط تابع base64_encode را کدگشایی کرده و اطلاعات اولیه(اصل اطلاعات) را بدست آوریم.
عالی بود زییی