الفرق بين المراجعتين لصفحة: «PHP/ignore user abort»

من موسوعة حسوب
< PHP
لا ملخص تعديل
تعديلات طفيفة على التنسيق
 
(1 مراجعات متوسطة بواسطة نفس المستخدم غير معروضة)
سطر 2: سطر 2:
(PHP 4, PHP 5, PHP 7)
(PHP 4, PHP 5, PHP 7)


تُحَدِّدُ الدالةُ ignore_user_abort()‎ ما إذا كان انقطاع اتصال العميل سيؤدي إلى إحباط تنفيذ البرنامج.
تُحَدِّدُ الدالةُ <code>ignore_user_abort()‎</code> ما إذا كان انقطاع اتصال العميل سيؤدي إلى إحباط تنفيذ البرنامج.


== الوصف ==
== الوصف ==
سطر 9: سطر 9:




</syntaxhighlight>تُحَدِّدُ الدالةُ ignore_user_abort()‎ ما إذا كان انقطاع اتصال العميل سيؤدي إلى إحباط تنفيذ البرنامج.
</syntaxhighlight>تُحَدِّدُ الدالةُ <code>ignore_user_abort()‎</code> ما إذا كان انقطاع اتصال العميل سيؤدي إلى إحباط تنفيذ البرنامج.


عند تشغيل PHP كسكربت في سطر الأوامر، وأُغْلِقَتْ الطرفية دون إنهاء تشغيل السكربت، سينتهي تنفيذ البرنامج في المرة القادمة التي يحاول فيها كتابة أي شيء، ما لم تُضبَط قيمة المعامل value إلى القيمة TRUE.
عند تشغيل PHP كسكربت في سطر الأوامر، وأُغْلِقَتْ الطرفية دون إنهاء تشغيل السكربت، سينتهي تنفيذ البرنامج في المرة القادمة التي يحاول فيها كتابة أي شيء، ما لم تُضبَط قيمة المعامل <code>value</code> إلى القيمة <code>TRUE</code>.


== المعاملات ==
== المعاملات ==


=== value ===
=== <code>value</code> ===
إذا ضُبِطَ المعامل value، فستضبِط الدالةُ ignore_user_abort()‎ قيمة خيار الضبط ini ignore_user_abort إلى قيمة المعامل المحددة. أما إذا لم تُضبَط قيمة value، فستعيد الدالةُ ignore_user_abort()‎ خيار الضبط السابق دون تغييره.
إذا ضُبِطَ المعامل <code>value</code>، فستضبِط الدالةُ <code>ignore_user_abort()‎</code> قيمة خيار الضبط <code>ini ignore_user_abort</code> إلى قيمة المعامل المحددة. أما إذا لم تُضبَط قيمة <code>value</code>، فستعيد الدالةُ <code>ignore_user_abort()‎</code> خيار الضبط السابق دون تغييره.


== القيم المعادة ==
== القيم المعادة ==
تعيدُ الدالةُ ignore_user_abort()‎ خيار الضبط السابق، كعدد صحيح.
تعيدُ الدالةُ <code>ignore_user_abort()‎</code> خيار الضبط السابق، كعدد صحيح.


== أمثلة ==
== أمثلة ==
المثال 1: مثال على الدالة ignore_user_abort()‎<syntaxhighlight lang="php">
المثال 1: مثال على الدالة <code>ignore_user_abort()</code>‎<syntaxhighlight lang="php">
<?php
<?php
// تجاهل تَوَقُّف العميل واسمح للبرنامج بالعمل دائمًا
// تجاهل تَوَقُّف العميل واسمح للبرنامج بالعمل دائمًا
ignore_user_abort(true);
ignore_user_abort(true);
set_time_limit(0);
set_time_limit(0);
echo 'Testing connection handling in PHP';
echo 'Testing connection handling in PHP';
// حلقة تكرار غير منتهية، التي تمكّن المستخدم من النقر على زر إيقاف تحميل الصفحة.
// حلقة تكرار غير منتهية، التي تمكّن المستخدم من النقر على زر إيقاف تحميل الصفحة.
while(1)
while(1)
{
{
 
  // هل فشل الاتصال؟
   // هل فشل الاتصال؟
 if(connection_status() != CONNECTION_NORMAL)
 
 {
   if(connection_status() != CONNECTION_NORMAL)
   break;
 
}
   {
 // أوقف البرنامج لمدة 10 ثوانٍ
 
 sleep(10);
       break;
 
   }
 
   // أوقف البرنامج لمدة 10 ثوانٍ
 
   sleep(10);
 
}
}
//إذا تحقق ذلك، تُشَغَّلُ جملة 'break' من داخل الحلقة التكرارية while. لذلك يمكننا هنا تسجيل الدخول، أو تنفيذ أي مهام أخرى نحتاجها دون الاعتماد فعليًا على المتصفح.
//إذا تحقق ذلك، تُشَغَّلُ جملة 'break' من داخل الحلقة التكرارية while. لذلك يمكننا هنا تسجيل الدخول، أو تنفيذ أي مهام أخرى نحتاجها دون الاعتماد فعليًا على المتصفح.
?>
?>


سطر 62: سطر 46:


== ملاحظات ==
== ملاحظات ==
لن تكتشف PHP أن المستخدم قد أوقف الاتصال حتى تُجرَى محاولةٌ لإرسال معلومات إلى العميل. إن مجرد استخدام بنية echo لا يضمن أن تُرسَل المعلومات إلى العميل، انظرْ إلى توثيق الدالةَ flush()‎.
لن تكتشف PHP أن المستخدم قد أوقف الاتصال حتى تُجرَى محاولةٌ لإرسال معلومات إلى العميل. إن مجرد استخدام بنية <code>[[PHP/echo|echo]]</code> لا يضمن أن تُرسَل المعلومات إلى العميل، انظرْ إلى توثيق الدالةَ [[PHP/flush|flush(]])‎.


== انظر أيضًا ==
== انظر أيضًا ==
* الدالة connection_aborted()‎: فحص ما إذا كان العميل غير متصل.
* الدالة <code>[[PHP/connection aborted|connection_aborted()‎]]</code>: فحص ما إذا كان العميل غير متصل.
* الدالة connection_status()‎: إعادة bitfield لحالة الاتصال.
* الدالة <code>[[PHP/connection status|connection_status()‎]]</code>: إعادة bitfield لحالة الاتصال.
* راجع صفحة «معالجة الاتصالات» للحصول على وصف كامل لمعالجة الاتصال في PHP.
* راجع صفحة «معالجة الاتصالات» للحصول على وصف كامل لمعالجة الاتصال في PHP.



المراجعة الحالية بتاريخ 13:31، 29 مايو 2018

(PHP 4, PHP 5, PHP 7)

تُحَدِّدُ الدالةُ ignore_user_abort()‎ ما إذا كان انقطاع اتصال العميل سيؤدي إلى إحباط تنفيذ البرنامج.

الوصف

int ignore_user_abort ([ bool $value ] )

تُحَدِّدُ الدالةُ ignore_user_abort()‎ ما إذا كان انقطاع اتصال العميل سيؤدي إلى إحباط تنفيذ البرنامج.

عند تشغيل PHP كسكربت في سطر الأوامر، وأُغْلِقَتْ الطرفية دون إنهاء تشغيل السكربت، سينتهي تنفيذ البرنامج في المرة القادمة التي يحاول فيها كتابة أي شيء، ما لم تُضبَط قيمة المعامل value إلى القيمة TRUE.

المعاملات

value

إذا ضُبِطَ المعامل value، فستضبِط الدالةُ ignore_user_abort()‎ قيمة خيار الضبط ini ignore_user_abort إلى قيمة المعامل المحددة. أما إذا لم تُضبَط قيمة value، فستعيد الدالةُ ignore_user_abort()‎ خيار الضبط السابق دون تغييره.

القيم المعادة

تعيدُ الدالةُ ignore_user_abort()‎ خيار الضبط السابق، كعدد صحيح.

أمثلة

المثال 1: مثال على الدالة ignore_user_abort()

<?php
// تجاهل تَوَقُّف العميل واسمح للبرنامج بالعمل دائمًا
ignore_user_abort(true);
set_time_limit(0);
echo 'Testing connection handling in PHP';
// حلقة تكرار غير منتهية، التي تمكّن المستخدم من النقر على زر إيقاف تحميل الصفحة.
while(1)
{
  // هل فشل الاتصال؟
 if(connection_status() != CONNECTION_NORMAL)
 {
   break;
 }
 // أوقف البرنامج لمدة 10 ثوانٍ
 sleep(10);
}
//إذا تحقق ذلك، تُشَغَّلُ جملة 'break' من داخل الحلقة التكرارية while. لذلك يمكننا هنا تسجيل الدخول، أو تنفيذ أي مهام أخرى نحتاجها دون الاعتماد فعليًا على المتصفح.
?>

ملاحظات

لن تكتشف PHP أن المستخدم قد أوقف الاتصال حتى تُجرَى محاولةٌ لإرسال معلومات إلى العميل. إن مجرد استخدام بنية echo لا يضمن أن تُرسَل المعلومات إلى العميل، انظرْ إلى توثيق الدالةَ flush()‎.

انظر أيضًا

  • الدالة connection_aborted()‎: فحص ما إذا كان العميل غير متصل.
  • الدالة connection_status()‎: إعادة bitfield لحالة الاتصال.
  • راجع صفحة «معالجة الاتصالات» للحصول على وصف كامل لمعالجة الاتصال في PHP.

مصادر