آموزش های هاست سرور و غیره

مرکز آموزش هاست لاین
افزایش تایم اجرایی یک اسکریپت در php.ini
نویسنده:
۳ تیر ۹۳

به طور پیش فرض PHP اسکریپت زمان اجرا به مدت ۳۰ ثانیه در فایل php.ini تنظیم شده است. این محدودیت زمانی را برای تمام فایل های به پایان اجرای آن است. اگر فایل طول می کشد بیش از این مدت زمان معینی پس از اجرای اسکریپت متوقف خواهد شد و پیغام خطا خواهد شد شبیه به این نمایش داده شود.

Fatal error: Maximum execution time of 30 seconds exceeded in F:\php_file2\t\test3.php on line 14

این حداکثر زمان اجرای در داخل فایل php.ini نظیر این مجموعه.

max_execution_time = 30     ; Maximum execution time of each script, in seconds

این مقدار می تواند افزایش یافته و یا به عنوان مورد نیاز ما را در فایل php.ini کاهش داد، اما توجه داشته باشید که در یک محیط سرور که در آن بسیاری از سایت های میزبانی، هر گونه تغییر در فایل php.ini اجرا خواهد تمام سایت های میزبانی شده توسط سرور تاثیر می گذارد. بنابراین این تغییر ممکن نیست مگر اینکه شما خود را به سرور و شما تنها کاربر می باشد. در یک سرور میزبانی مشترک میزبان ما ممکن است به تغییر هر یک از تنظیمات فایل php.ini اجرا شده برای نیاز های ما است. بنابراین گزینه ای برای تنظیم زمان اجرای فایل برای فایل های خاص در پایان فایل های فردی وجود دارد. این تنظیم محدودیت زمانی ندارد اگر اثر پی اچ پی در حال اجرا است را در حالت امن. اجازه دهید ما را امتحان کنید تا یاد بگیرند که چگونه این کار می کند.

برای فهمیدن مقدار زمان اجرای هر اسکریپت از کد پی اچ پی زیر هم می توان استفاده کرد.

<?Php
echo ini_get('max_execution_time');
?>

ما هم تمبر برای پیدا کردن تاخیر بین شروع و پایان از اجرای اسکریپت استفاده کنید. ما زمان ارزش تمبر در شروع از اسکریپت ذخیره خواهد شد و سپس دوباره ما را در پایان اسکریپت سابقه بوده است. تفاوت این دو مقدار به ما ایده چه میزان زمان اسکریپت را گرفته است به اجرا دهد. توجه داشته باشید که در اینجا بین دو مقدار از زمان ما سعی خواهیم کرد به اضافه کردن برخی از تاخیر با استفاده از خواب تابع (). این تابع خواب طول می کشد مقدار عددی در ثانیه و تاخیر اجرای حکم اعدام است که بسیاری ثانیه صورت گرفت. ما همچنین می تواند به تاخیر با استفاده از حلقه for ایجاد اما این یک راه حل بهتر است. در اینجا فعال است.

$t1=time();
sleep(20);
$t2=time();

$t_lapsed=$t2-$t1;
echo "Total time lapsed = $t_lapsed";

ما یک تاخیر ۲۰ ثانیه معرفی کرده اند و این بدون هیچ مشکلی خواهد اجرا، در حال حاضر ارزش خواب تا ۵۰ ثانیه افزایش می دهد و در اجرای شما پیغام خطا گفت: حداکثر زمان اجرای مجاز فراتر رفته است. دلیل این است که به طور پیش فرض حداکثر زمان اجرای مجاز تعیین شده در فایل php.ini 30 ثانیه است. در حال حاضر ما کد بالا را تغییر دهید با اضافه کردن یک set_time_limit خط (۶۰). در اینجا فعال است

set_time_limit ( 60 );
$t1=time();

sleep(50);

$t2=time();
$t_lapsed=$t2-$t1;
echo "Total time lapsed = $t_lapsed";

در حال حاضر این اسکریپت خوب و بدون هیچ پیغام خطا اجرا کند. ما می توانیم زمان کل انجام شده توسط اسکریپت ها را ببینید.
ما می توانیم زمان را به مقدار نامحدود با ساخت آن را به ۰ ارزش مجموعه. مثل این:

set_time_limit (0);

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *