sos 50 ارسال شده در آذر 93 گزارش بازنشر ارسال شده در آذر 93 آیا میشه یک حلقه while رو که باید n بار اجرا بشه رو کاری کرد که بعد از هر اجرا 30 ثانیه صبر کنه و بعد دوباره اجرا بشه . نقل قول لینک به ارسال
استاد اعظم 900 ارسال شده در آذر 93 گزارش بازنشر ارسال شده در آذر 93 (ویرایش شده) در خط ششم تابع sleep عمل تاخیر را انجام میده ، ورودی برابر با تعدا ثانیه های ایجاد تاخیر<?php$i=0while($i < 10){echo '$i = '.$i.'<br/>';sleep(30);$i++}?> ویرایش شده آذر 93 توسط MrProgrammer 3 نقل قول لینک به ارسال
sos 50 ارسال شده در آذر 93 مالک گزارش بازنشر ارسال شده در آذر 93 در خط ششم تابع sleep عمل تاخیر را انجام میده ، ورودی برابر با تعدا ثانیه های ایجاد تاخیر<?php$i=0while($i < 10){echo '$i = '.$i.'<br/>';sleep(30);$i++}?>تشکر . اما یک سوال ؟هنگام لود کد مرورگر چیزی رو نشون نمیده همینطور درحال لود شدن هست و بعد ازمثلا الان 10*30=300 ثانیه کل جواب رو نشون میده !!!1. آیا اینطوری به سرور فشاری وارد نمیشه ؟2. نمیشه کاری کرد که هر جواب رو نشون بده و بعد همینجور به ترتیب دستور رو اجرا کنه ؟ درحقیقت من این حلقه رو میخوام برای ارسال ایمیل میخوام . خوب اگر مدام توی این 300 ثانیه سرور زیر بار لود باشه که خیلی بده مگر اینکه پشت پرده چیز دیگه ای باشه ؟ یعنی سرور زیر بار نباشه تا بازه ی بعدی ؟ نقل قول لینک به ارسال
استاد اعظم 900 ارسال شده در آذر 93 گزارش بازنشر ارسال شده در آذر 93 نه اتفاقااز تابع sleep برای جلوگیری از فشار به سرور استفاده میشه ،در اسکریپت های طولانی که ممکنه به سرور فشار بیاره از این تابع استفاده میشه و در مدت زمان تاخیر سی پی یو فعالیتی نداره و به نوعی استراحت میکنهدر ثانی با هر بار اجرا شدن حلقه یکی از ایمیل هاارسال میشه اما چون کد php تا انتها جلو نرفته و تمام کد های یک صفحه اجرا نشدند خروجی در مرورگر شما نداره ، برای اینکه در مرورگر شما خروجی داشته باشه در پایان اجرای هر حلقه میتونید از تابع flush استفاده کرد (اطلاعات بیشتر در مورد این تابع : تابع flush) مثلا در حلقه while به شکل زیره :<?php$i=0while($i < 10){echo '$i = '.$i.'<br/>';sleep(30);$i++;flush();}?> 3 نقل قول لینک به ارسال
AliTaran 0 ارسال شده در آبان 95 گزارش بازنشر ارسال شده در آبان 95 در در ۱۳۹۳/۹/۶ ه.ش. at 08:07، حسین شفیعیان گفته است : نه اتفاقااز تابع sleep برای جلوگیری از فشار به سرور استفاده میشه ،در اسکریپت های طولانی که ممکنه به سرور فشار بیاره از این تابع استفاده میشه و در مدت زمان تاخیر سی پی یو فعالیتی نداره و به نوعی استراحت میکنه در ثانی با هر بار اجرا شدن حلقه یکی از ایمیل هاارسال میشه اما چون کد php تا انتها جلو نرفته و تمام کد های یک صفحه اجرا نشدند خروجی در مرورگر شما نداره ، برای اینکه در مرورگر شما خروجی داشته باشه در پایان اجرای هر حلقه میتونید از تابع flush استفاده کرد (اطلاعات بیشتر در مورد این تابع : تابع flush) مثلا در حلقه while به شکل زیره : <?php $i=0 while($i < 10) { echo '$i = '.$i.'<br/>'; sleep(30); $i++; flush(); } ?> ممنون دنبال همین بودم ولی با این تفاوت که حلقه هر بار در بازه های زمانی متفاوت توقف کنه مثلا یک بار 3 ثانیه بار دیگه 5 ثانیه و یک بار هم 6 ثانیه متوقف بشه و بعد همین روال ادامه داشته باشه نقل قول لینک به ارسال
پست های پیشنهاد شده
به گفتگو بپیوندید
هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .