PDA

View Full Version : مشکل در اجرای حلقه هنگام وقفه در تکرار حلقه روی سرور



mojtabaesf
دوشنبه 30 آبان 1390, 17:53 عصر
من وقتی اسکریپت زیر را در سیستم خودم ، لوکال اجار می کنم مشکلی نداره و همه چیز خوبه ، ولی وقتی همین اسکریپت را روی سرور اجرا می کنم به مشکل بر می خورم .


<?php
for ( $i = 0 ; $i < 32 ; $i++ )
{
$b = $i * 80 ;
$l = $b + 80 ;
for ( $c = $b ; $c < $l ; $C++‎‎ )
{
$s = $c + 1 ;
$array [] = $s ;
}
sleep (13);
$f = fopen("db.txt" , 'a+') ;
$z = $i + 1 ;
fwrite ($f , '(('.$z.'))-->>[[' );
foreach ( $array as $val )
{
fwrite ($f , $val.' ' );
}
fwrite ($f,"]]\n\n" );
$array = array();
}
?>

این اسکریپت دارای یک حلقه می باشد ، با تکرار 32 روی لوکال درست کار می کند و 32 بار تکرار می شود ولی روی سرور بیش از 32 بار اجرار می شه . باید بگویم که مدت زمان اجرار اسکریپت در حالت صحیح 96 ثانیه است . و داخل حلقه از تابع اسلیپ برای ایجاد وقفه زمانی استفاده شده است .و این مشکل با وجود این تابع رخ می دهد .چیزی که هست من می خواهم درون حلقه به جای تابع اسلیپ یک تابع مانند ارسال ایمیل قرار دهم که زمان زیادی می بره .و کلا روی سرور با حلقه هایی که زمان زیادی برای اجرای تکرار های حلقه هست ، با مشکل مواجه می شوم ، نتیجه اجرای اسکریپت داخل یه فایل متنی کنار خود اسکریپت ذخیره می شه . ممنون می شوم یه نگاهی به این اسکریپت کنید . ببینید متوجه می شید باید چه کار کنم .

MSN_Issue
دوشنبه 30 آبان 1390, 18:20 عصر
روی اکثر سرور ها به صورت پیشفرض برای اجرای اسکریپت هایی مثل PHP محدودیت زمانی اعمال میشه
که معمولا این محدودیت 30 ثانیه ست...
با دستور زیر این محدودیت رو از 30 ثانیه به بینهایت تغییر بدید شاید درست شه ... !

set_time_limit(0);

mojtabaesf
سه شنبه 01 آذر 1390, 09:45 صبح
با تشکر دوست عزیز از پاسخ تان . مشکل این اسکریپت روی مدت زمان اجرا نیست . چیزی که هست این می باشد که کاملا اجرا می شه و مشکلی نداره . ولی روی لوکال 32 بار حلقه تکرار می شه ولی روی هاست بیش از 32 بار تکرار می شه .