2010-02-04 17 views
11

के लिए अधिकतम निष्पादन समय सेट करें exec($command) फ़ंक्शन का अधिकतम निष्पादन समय निर्धारित करना संभव है? कभी कभी मेरे $command के निष्पादन बहुत लंबा रहता है 1 मिनट के बाद रोक और इस त्रुटि पेश:exec() विशेष रूप से

Fatal error: Maximum execution time of 60 seconds exceeded in C:\xampp\htdocs\files.php on line 51

मैं exec() आदेश अधिकतम निष्पादन समय कैसे बढ़ा सकते हैं?

if (allow()) { 
    exec($command); 

    if (file_exists($file)) { 
     //exec($makeflv); 
     echo '<script language="javascript" type="text/javascript">window.top.window.aviout(1);</script>'; 

    } else { 
     echo $error; 
     } 

} else { 
    echo $error; 
    } 
+1

Btw, इस कम से कम तीन उत्तर दिया गया है बार: http://stackoverflow.com/questions/1176497/limit-execution-time-of-an-function-or-command-php, http://stackoverflow.com/questions/1928249/php-preventing-max- निष्पादन-समय-सीमा-मेल और http://stackoverflow.com/questions/21 47567/से बचें-php-execution-time-limit – Gordon

उत्तर

3

आप ini_set() इस तरह उपयोग कर सकते हैं:

ini_set('max_execution_time', 0); 

यह स्थापना 0 को documentation of the ini-directive के अनुसार अपनी स्क्रिप्ट हमेशा के लिए चलाया कर देगा।

+0

मैं अपने फ़ंक्शन में ini_set() कैसे शामिल कर सकता हूं? – robert

+0

जहां भी आप चाहें लाइन डालें। कोई जादू शामिल नहीं है। – soulmerge

20

देखें http://php.net/manual/en/function.set-time-limit.php

set_time_limit($seconds) 

$second0 पर सेट है, कोई समय सीमा नहीं लगाया गया है। ध्यान दें कि आपको समय सीमा को पूरी तरह हटाने के साथ सावधान रहना चाहिए। आप नहीं चाहते हैं कि कोई भी अनंत लूप धीरे-धीरे सभी सर्वर संसाधनों को खा रहा हो। एक उच्च सीमा, उदा। 180 कोई सीमा से बेहतर है।

वैकल्पिक रूप से, आप केवल कोड के कुछ ब्लॉक के लिए समय सेटिंग समायोजित कर सकते हैं और महत्वपूर्ण कोड चलाने के बाद समय सीमा को रीसेट कर सकते हैं, उदा।

$default = ini_get('max_execution_time'); 
set_time_limit(1000); 
... some long running code here ... 
set_time_limit($default); 
+0

ठीक है मैं exec (time कमांड) से पहले set_time_limit (180) डालता हूं; ऐसा लगता है कि काम करता है! लेकिन समय समाप्त होने के बाद मैं एक त्रुटि गूंजना चाहता हूं कि मैं यह कैसे करूं ?? – robert

+0

समय सीमा समाप्त होने पर यह स्वयं ही एक त्रुटि फेंक देगा। यही कारण है कि आप अपने प्रश्न को पहले स्थान पर पूछते हैं। यदि आप एक कस्टम त्रुटि हैंडलर चाहते हैं, तो http://php.net/manual/en/function.set-error-handler.php – Gordon

+0

हां देखें, लेकिन जब मैं एक फॉर्म सबमिट करता हूं तो process.php पृष्ठ iframe से शुरू होता है, i केवल इसे गूंजने के लिए: जहां परिणाम एक त्रुटि या सफलता है! – robert

3

.htaccess में आप इन मूल्यों को निर्धारित कर सकते हैं:

php_value max_execution_time 1000000 
php_value max_input_time 1000000 

आप भी अपने PHP स्क्रिप्ट के शीर्ष पर इस कोशिश कर सकते हैं:

set_time_limit(0); 
संबंधित मुद्दे