output_reset_rewrite_vars
این تابع برای «بازنشانی بازنویسی آدرس» است. یعنی اگر با بازنویسی URL متغیرها را به لینک ها چسباندی، با این دستور همه پاک می شوند. «متغیر (Variable)» یعنی یک مقدار نام دار. «بافر خروجی (Output Buffer)» یعنی جایی که متن قبل از ارسال نگه می شود. این را مثل پیش نویس پیام در چت ببین.
تعریف ساده و کاربرد
تابع output_reset_rewrite_vars() همه متغیرهایی را که قبلاً با output_add_rewrite_var() برای بازنویسی URL تنظیم کرده ای، از «خروجی های بعدی» حذف می کند. آنچه قبلاً ارسال شده، دست نخورده می ماند. پس برای لینک های بعدی اثر می گذارد.
مثال گام به گام
- برچسب های مجاز بازنویسی را تنظیم کن.
- یک متغیر بازنویسی اضافه کن.
- یک لینک ایجاد کن و خروجی را بفرست.
- بازنشانی کن تا لینک های بعدی تمیز باشند.
<?php
// 1) فعال کردن بازنویسی برای a و form
ini_set('url_rewriter.tags', 'a=href,form=');
// 2) افزودن متغیر بازنویسی
output_add_rewrite_var('var', 'value');
// 3) این لینک متغیر خواهد داشت
echo '<a href="">This link (URL) will have a variable</a><br>';
// بهتر است محتوا را همین حالا بفرستیم
ob_flush();
// 4) بازنشانی تا لینک های بعدی تمیز شوند
output_reset_rewrite_vars();
// این لینک دیگر متغیر نخواهد داشت
echo '<a href="">This link (URL) will not have a variable</a>';
?>
نکات مهم و خطاهای رایج
- اثر تابع فقط روی محتوای «بعد از فراخوانی» است.
- اگر چیزی قبلاً ارسال شده، تغییر نمی کند.
- برچسب های مجاز را با
ini_setدرست تعیین کن. - برای کنترل بهتر، از بافر خروجی و
ob_flush()استفاده کن.
حذف بازنویسی آدرس در عمل
اول متغیرها را به لینک ها اضافه کن. سپس وقتی دیگر لازم ندارند، «بازنشانی بازنویسی آدرس» را اجرا کن تا URL ها دوباره تمیز شوند؛ مثل پاک کردن استیکر از دفترت.
ارتباط های مفید
افزودن متغیر به بازنویسی URL را هم ببین. همچنین این صفحه بازنشانی بازنویسی آدرس در کنار دیگر توابع خروجی می آید. برای مرور کل توابع خروجی، این لینک را ببین: Output Control Functions.
جمع بندی سریع
- این تابع، متغیرهای بازنویسی را صفر می کند.
- روی خروجی های بعدی اثر می گذارد.
- با
ini_setبرچسب ها را مشخص کن. - برای نظم خروجی، از بافر استفاده کن.