La utilizarea ini_set(‘max_execution_time’, 0); (Programare, Php, Mysql, Apache, Codeigniter)

Nyxynyx a intrebat.

Cum pot utiliza ini_set('max_execution_time', 0);?

Întrebarea 1: Îl plasez în partea de sus a fișierului .PHP sau într-o funcție care durează mult timp pentru a face ceva?

Întrebarea 2: Această setare durează pentru totdeauna după ce a fost setată? Sau revine la valoarea inițială de 300sec sau la orice altă valoare implicită după ce funcția se oprește din execuție?

Comentarii

  • Modificări prin ini_set() sunt per-script-execuție. Se aplică numai la scriptul respectiv și numai în timp ce acesta este în execuție. Nu va modifica setările globale ale PHP pentru alte scripturi. –  > Por Marc B.
  • Un pic OFF, dar puteți găsi câteva informații utile despre setarea max_execution_time la zero: stackoverflow.com/questions/4306605/…. –  > Por Sk8erPeter.
3 răspunsuri
Brad

Poți să o plasezi oriunde, dar acea setare nu va avea efect până când nu se execută. Deci, dacă o pui în partea de sus, atunci scriptul nu va avea niciodată timeout. Dacă îl pui mai jos, pe funcția care poate dura ceva timp, atunci s-ar putea să primești un timeout mai sus dacă scriptului îi ia mult timp să ajungă acolo unde l-ai apelat.

Atunci când utilizați ini_set() această opțiune rămâne în vigoare pentru întreaga execuție a scriptului.

Comentarii

  • Presupun că dacă aș pune ini_set() la începutul unei funcții PHP care are nevoie de foarte mult timp pentru a-și termina sarcina, acea opțiune rămâne până când funcția se întoarce la apelant? –  > Por Nyxynyx.
  • @Nyxynyx nu — rămâne până când întregul script este complet terminat de încărcat –  > Por Naftali aka Neal.
  • @nyxynyx, gândiți-vă la ini_set() ca la setarea unei opțiuni globale. Nu contează unde o apelați. Setați o opțiune PHP pe motor, nu pe scriptul dvs. Nu contează unde o apelați (într-o funcție, nu într-o funcție), acea setare este apoi setată pentru întreaga execuție a scriptului dvs., de la început până la sfârșit, indiferent de domeniul de aplicare. –  > Por Brad.
Naftali aka Neal

2: Durează doar pentru acea pagină care s-a încărcat. după aceea s-a terminat.

1: Ar trebui să fie plasat la începutul codului, dar poate fi plasat oriunde.

cweiske

Răspuns 1: înainte de a executa codul de lungă durată

Răspuns 2: durează până când se termină procesul php