किसी Ctrl +जेड के साथ एक PHP स्क्रिप्ट से बाहर तोड़ने से उपयोगकर्ताओं को रोकने के लिए कैसे शोध के लिए सही दिशा में मुझे बात कर सकता हूँ से निष्क्रिय करने के लिए Ctrl-Z, Ctrl-C, Ctrl + सी?कैसे एक PHP स्क्रिप्ट को तोड़ते
उत्तर
उपयोग ignore_user_abort कार्य करते हैं। इसे php.ini ignore_user_abort में सत्य में सेट करें। यदि ग्राहक द्वारा कनेक्शन को निरस्त करने के बाद TRUE स्क्रिप्ट में बदला जाता है, तो स्क्रिप्ट समाप्त हो जाएगी।
ignore_user_abort(true);
या
$ php my_script.php -d ignore_user_abort = true
संभव हैं, तो आप एक कोशिश पकड़ ब्लॉक में मुख्य लूप लपेट कर सकते हैं और बीच में बंद करें/इंटरप्ट अपवाद (यकीन नहीं सटीक एक छुटकारा पाने, माफ करना, मेरी पीएचपी है थोड़ा सा जंगली)
विवरण पर कम है, इस सवाल का जवाब का दृष्टिकोण एक कमांड लाइन स्क्रिप्ट के लिए केवल एक ही लगता है, इसलिए मैं downvote नहीं मिलता है। धन्यवाद: – GreenMatt
क्योंकि पीएचपी –
यदि आपके पास PCNTL (प्रक्रिया नियंत्रण) के साथ संकलित PHP है और Windows नहीं चल रहे हैं तो आप pcntl_signal()
का उपयोग कर सकते हैं।
एक उदाहरण here जो मैं संशोधित नहीं है, और यह Ctrl-C ठीक पकड़ने के लिए लगता है:
<?php
declare(ticks = 1);
pcntl_signal(SIGINT, "signal_handler");
function signal_handler($signal) {
switch($signal) {
case SIGINT:
print "Ctrl C\n";
}
}
while(1) {
}
आप एक हैंडलर इंस्टॉल करना के लिए SIGSTP
कुछ नहीं होता की कोशिश करते हैं, लेकिन मैं पता नहीं क्यों।
शैल में अक्षम होने से ऐसा करने का एक तरीका है।
Source यहां है।
#!/bin/bash
# at start add
trap "" 2 20
# your script
echo " Test"
# loop for sleep
sleep 5
20 के लिए Ctrl + Z
2 CTRL + C
के लिए है और इस जाल के द्वारा बनाई गई की पूरी सूची है - | कमांड
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL
5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE
9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2
13) SIGPIPE 14) SIGALRM 15) SIGTERM 16) SIGSTKFLT
17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP
21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU
25) SIGXFSZ 26) SIGVTALRM 27) SIGPROF 28) SIGWINCH
29) SIGIO 30) SIGPWR 31) SIGSYS 34) SIGRTMIN
35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3 38) SIGRTMIN+4
39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8
43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12
47) SIGRTMIN+13 48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14
51) SIGRTMAX-13 52) SIGRTMAX-12 53) SIGRTMAX-11 54) SIGRTMAX-10
55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7 58) SIGRTMAX-6
59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2
63) SIGRTMAX-1 64) SIGRTMAX
हालांकि PHP से सीधे ऐसा करना मुश्किल है, मुझे यकीन नहीं है कि यह कैसे करें या यदि यह किया जा सकता है। अन्यथा कुछ साइटों ने कीस्ट्रोक को कैप्चर करने के लिए जावास्क्रिप्ट का सुझाव दिया। उम्मीद है की यह मदद करेगा।
यदि आप संख्यात्मक मानों का उपयोग करते हैं (अंतर्निहित PHP स्थिरांक के बजाए) तो यह कम से कम मेरे लिए डेबियन/उबंटू सिस्टम पर काम करता प्रतीत होता है।
विचित्र रूप से पर्याप्त, नीचे दिए गए मेरे उदाहरण में, कॉलबैक फ़ंक्शन सिग्नल_हैंडलर() को नहीं कहा जा रहा है। इसके बजाए, यह केवल इनपुट लाइन पर "^ जेड" और "^ सी" प्रदर्शित करता है, जबकि संकेतों को केवल अनदेखा किया जा रहा है। अंत में, कोई ब्रेक/निलंबन संभव नहीं है, जो उम्मीद है कि मूल प्रश्न का उत्तर दें:
#!/usr/bin/php
<?
pcntl_signal(2, "signal_handler");
pcntl_signal(20, "signal_handler");
function signal_handler($signal)
{
echo("This is not even invoked..?\n");
}
$end = FALSE;
while($end == FALSE)
{
echo("Enter Q to quit: ");
$fp = fopen("php://stdin", "r");
$line = fgets($fp);
$line = str_replace("\n", "", $line);
fclose($fp);
if(strtolower($line) == "q") $end = TRUE;
}
?>
- 1. एक php स्क्रिप्ट
- 2. एक PHP स्क्रिप्ट
- 3. एक PHP स्क्रिप्ट
- 4. एक php स्क्रिप्ट
- 5. एक लटका PHP स्क्रिप्ट
- 6. PHP स्क्रिप्ट को PHP5
- 7. एक सतत PHP स्क्रिप्ट कैसे चलाना है?
- 8. मैं एक PHP स्क्रिप्ट पृष्ठभूमि
- 9. PHP/अजाक्स/jQuery - एक php स्क्रिप्ट
- 10. एक PHP स्क्रिप्ट को असीमित रूप से कैसे चलाएं?
- 11. php स्क्रिप्ट
- 12. PHP स्क्रिप्ट
- 13. PHP स्क्रिप्ट
- 14. PHP स्क्रिप्ट
- 15. PHP स्क्रिप्ट
- 16. PHP स्क्रिप्ट से पायथन स्क्रिप्ट
- 17. PHP स्क्रिप्ट
- 18. PHP स्क्रिप्ट
- 19. php स्क्रिप्ट
- 20. एक PHP स्क्रिप्ट एक बार हर मिनट
- 21. स्थानीय दायरा - हम कहां तोड़ते हैं?
- 22. देखें कि कर्ल एक PHP स्क्रिप्ट
- 23. PHP स्क्रिप्ट सुरक्षा
- 24. PHP: वर्तमान कार्य निर्देशिका को स्क्रिप्ट
- 25. SWFUpload एक ही PHP स्क्रिप्ट निष्पादन
- 26. प्रत्येक PHP स्क्रिप्ट से पहले php स्क्रिप्ट निष्पादित करें?
- 27. अपरिभाषित सूचकांक: PHP स्क्रिप्ट
- 28. PHP: एक प्रतीक्षा स्क्रिप्ट में जानकारी कैसे लौटाएं और
- 29. PHP लॉगिन स्क्रिप्ट
- 30. php में एक सुरक्षित फ़ाइल अपलोड स्क्रिप्ट कैसे बनाएं?
क्या आप कमांड लाइन पर हैं? –
हां, एक कमांड लाइन स्क्रिप्ट चल रही होगी जो मैं नहीं चाहता कि उपयोगकर्ता अनिवार्य रूप से बाहर निकलने में सक्षम हों। पोस्ट में कमजोर विवरण के लिए खेद है, अभी भी जाग रहा है। – teksolo