2009-10-19 17 views
11

Se faccio set_time_limit(50) o ini_set('max_execution_time',50), poi quando ho echo ini_get('max_execution_time') sul mio localhost ottengo 50, ma quando faccio questo su un altro server fa eco il default 30 e ignora completamente la mia richiesta . Perchè è questo?ini_set, set_time_limit, (max_execution_time) - non funziona

risposta

12

Non è possibile modificare questa impostazione con ini_set() durante l'esecuzione in modalità provvisoria. L'unica soluzione è disattivare la modalità provvisoria o modificando il limite di tempo nel php.ini.

- manuale di PHP, Configurazione di Runtime, description of max_execution_time

Molti host eseguito in modalità provvisoria. L'altro server è probabilmente uno di loro.

Edit: La stessa restrizione è in posizione sul set_time_limit:

Questa funzione non ha alcun effetto quando il PHP è in esecuzione in modalità provvisoria. Non è disponibile la soluzione oltre a disattivare la modalità protetta o modificare il limite di tempo nel file php.ini .

- manuale di PHP, set_time_limit pagina

+0

Ti darò il controllo di risposta ma l'ho appena capito prima di aggiornare la pagina! ahhh! Ma allora, l'errore di script non verrebbe fuori in 30 secondi? Perché mi sta dicendo che "la connessione al server è stata resettata" qualche idea? – Mickey

+0

Ad ogni ipotesi, PHP chiude la connessione senza terminare, quindi la connessione al server è stata ripristinata. Per curiosità, quali operazioni stai facendo richiede più di 30 secondi? Ci deve essere un modo per ridurre il tempo di elaborazione, a meno che tu non stia facendo un sacco di lavoro con XML o con database lenti. – Powerlord

+0

Devo connettermi a più provider MLS tramite la specifica RETS (rets.org) per ottenere dati di quotazione. Circa 1k per elenco e? K per circa 5-12 immagini raw. Inserisco i dati in MySQL quindi passa a quello successivo (in loop). Quindi deve geocodificare ogni elenco e qualche altro non senso di fantasia. – Mickey

1

GoDaddy consente di modificare il file PHP.INI remoto o (ottenendo la stessa funzione) impostare tali opzioni in fase di runtime? Molti host restrittivi (e non ne so nulla su GoDaddy in un modo o nell'altro) non ti permetteranno di usare le opzioni PHP tramite il file di configurazione o in runtime come hai fatto con WAMP. Potrebbe essere che sebbene tu stia ancora chiamando quella funzione, non viene applicata.

Usa

echo 'Time Limit = ' . ini_get('max_execution_time') . 

Il manuale dice che se è impostato a tutti nel php.ini, che si ignorare questa fase di esecuzione. PHP Manual on set_time_limit

+0

eseguire qualcos'altro, qualcosa di più breve/più facile contro di esso e controllare la risposta. – markus

+0

Ho dovuto modificare di nuovo la mia domanda, grazie per il vostro aiuto fino ad ora. – Mickey

1

È possibile modificare max_execution_time.
Carica una riga 1 (max_execution_time = 600) php5.ini nella cartella principale (dove risiede php.ini).

Problemi correlati