buy generic clomid
no rx cialis
cheapest clomid
order levitra online
where to buy accutane
find discount cialis online
viagra tablets
cheapest accutane prices
buy acomplia cheap
low cost viagra
lasix online stores
discount cialis no rx
viagra india
acomplia sale
viagra approved
viagra pharmacy
cialis pills
soma without prescription
buy viagra in canada
find no rx viagra
buy zithromax
find viagra
clomid online stores
discount acomplia
cheap clomid tablets
buy generic levitra
purchase levitra online
cialis buy
cialis india
cheapest cialis prices
zithromax without prescription
acomplia online stores
buy cheapest viagra on line
propecia online cheap
purchase soma online
synthroid without prescription
cost viagra
levitra pills
viagra overnight shipping
cheap viagra internet
buy viagra us
buy generic accutane
synthroid sale
cheap lasix online
purchase cialis without prescription
buy synthroid cheap
viagra cheap drug
cialis for order
buy cheap zithromax
viagra cheap price
order accutane online
buy viagra low price
zithromax prices
order propecia online
discount clomid
order cialis on internet
online soma
order cialis no prescription
cheap propecia online
acomplia pills
buy accutane without prescription
cialis australia
price of soma
cialis sales
buy soma without prescription
no prescription cialis
lasix generic
cheap cialis on internet
cheap clomid online
synthroid online cheap
purchase clomid online
where to buy synthroid
cheap levitra online
discount cialis overnight delivery
viagra australia
buying viagra online
zithromax for sale
viagra cost
viagra pills
buy cialis lowest price
price of clomid
cialis side effects
lasix for sale
cheapest generic cialis
find viagra on internet
levitra online stores
cialis overnight shipping
viagra online review
free cialis
cialis approved
buy cheapest viagra
cheap viagra online
where to buy levitra
order cialis from canada
cialis pharmacy
order soma
levitra cheap
viagra without rx
clomid cheap
cheap generic synthroid
where to buy propecia
buy generic synthroid
order lasix online
where to order viagra
buy accutane cheap
cheap accutane tablets
cheapest synthroid prices
cheap viagra in uk
synthroid online stores
accutane prescription
where to order cialis
order viagra on internet
sale viagra
buy cheap clomid
buy cialis low price
find cialis no prescription required
viagra internet
buy discount viagra
best price for viagra
cheap propecia
clomid without a prescription
buy viagra without prescription
discount lasix
levitra for sale
buy clomid
certified cialis
where to buy acomplia
buy cheap accutane online
buy cheapest viagra online
buy cheapest cialis on line
lowest price propecia
viagra in uk
buy no rx viagra
cheapest clomid prices
order cialis in us
cheap acomplia tablets
buy lasix without prescription
discount viagra overnight delivery
cheap cialis internet
cialis overnight
no prescription viagra
buy synthroid
viagra price
find cheap cialis online
order clomid online
best price for cialis
viagra purchase
purchase cialis online
online lasix
cheapest acomplia prices
zithromax without a prescription
best price viagra
cialis order
accutane cheap
buy cialis in us
buy viagra on internet
purchase clomid
clomid
cialis pharmacy online
cialis purchase
cheap lasix tablets
cialis generic
cheapest viagra price
zithromax no prescription
zithromax cheap
cialis cheap drug
buy cialis in canada
cheap zithromax tablets
buy clomid without prescription
lowest price lasix
acomplia discount
cialis online
viagra tablet
synthroid generic
propecia no prescription
buy generic zithromax
order viagra in us
purchase viagra no rx
approved viagra pharmacy
purchase viagra online
soma generic
accutane
cialis no rx required
online synthroid
purchase viagra overnight delivery
discount cialis
buy no rx cialis
viagra generic
buy cialis us
clomid prescription
acomplia prices
purchase lasix online
buy cheap synthroid
viagra online pharmacy
buy cheap clomid online
lasix cheap
cheap generic clomid
viagra buy drug
clomid pharmacy
propecia without prescription
synthroid online
accutane sale
levitra no prescription
online accutane
price of cialis
synthroid without a prescription
buy generic viagra
viagra in australia
cheapest zithromax prices
buy lasix
discount zithromax
cheapest levitra
cost of cialis
cheap viagra in usa
propecia online stores
buy zithromax cheap
sale cialis
find cheap viagra
viagra us
cheap clomid
cialis online stores
soma no prescription
buy cialis online
where to buy viagra
generic viagra
buy cialis internet
buy levitra cheap
order cialis no prescription required
cheap levitra tablets
buy cialis overnight delivery
buy viagra generic
lasix online
cheap cialis no prescription
acomplia cheap
order viagra no prescription required
cheapest levitra prices
discount viagra online
viagra
where to buy zithromax
buy cheap acomplia
purchase viagra
accutane for sale
generic acomplia
cheap viagra no prescription
compare viagra prices
generic zithromax
buy clomid online
propecia cheap
levitra prescription
buy clomid cheap
viagra in malaysia
acomplia pharmacy
acomplia for sale
order viagra cheap online
online viagra
buy acomplia without prescription
lowest price soma
discount cialis online
lasix prices
cialis cheapest price
cheap accutane online
buy synthroid without prescription
find cialis without prescription
accutane without prescription
buy acomplia
cialis cheap
cheap viagra from usa
online cialis
clomid discount
cheap cialis in usa
soma online cheap
cialis without a prescription
where to buy soma
purchase propecia online
cialis sale
buy cheap soma
find viagra online
cheap soma online
cialis free sample
lowest price viagra
buy cialis on line
viagra from canada
online pharmacy cialis
levitra
drug viagra online purchase
drug cialis
buy zithromax online
buy propecia
lasix pharmacy
accutane generic
clomid online cheap
soma prices
synthroid
levitra generic
order viagra from us
purchase accutane
lasix discount
cheapest cialis
cheap cialis pill
find discount viagra online
lowest price for viagra
accutane prices
acomplia generic
cheap cialis tablet
synthroid pills
viagra pharmacy online
viagra overnight
synthroid pharmacy
viagra online stores
buy discount viagra online
levitra online
certified viagra
cheap viagra in canada
cheapest propecia prices
order viagra without prescription
clomid sale
price of viagra
cialis cost
lowest price synthroid
purchase cialis
buying generic viagra
lasix pills
generic accutane
buy cheap soma online
buy lasix cheap
cialis online review
purchase cialis overnight delivery
soma for sale
cheap viagra on internet
lowest price cialis
cheap viagra from uk
buy generic lasix
buy cheap lasix
order levitra
cialis without prescription
cialis prices
buy viagra no rx
buy cialis no rx
purchase zithromax online
best price cialis
cialis in uk
buy discount cialis online
propecia prescription
cialis discount
purchase lasix
propecia sale
order discount cialis
viagra prices
discount synthroid
buy generic cialis
soma online
buy generic viagra online
buy cialis from india
cheap viagra pharmacy
buy synthroid online
online levitra
order cheap viagra
cost cialis
cheapest cialis price
cialis us
acomplia without a prescription
order cialis
cheap generic zithromax
cheap levitra
cheap cialis without prescription
cheapest viagra prices
cheap cialis from canada
zithromax pills
zithromax generic
buy viagra internet
drug cialis online purchase
compare viagra prices online
buy cialis from us
cialis tablets
generic viagra online
buy cheap viagra internet
lasix prescription
drug viagra
accutane discount
buying cialis online
cheap soma
order clomid
buy generic acomplia
cialis online without prescription
price of levitra
buy levitra online
acomplia without prescription
cialis rx
buy propecia online
buy cheap accutane
price of synthroid
synthroid prescription
viagra online
cheap synthroid online
order propecia
order synthroid online
soma without a prescription
viagra free delivery
buy cialis without prescription
purchase synthroid
discount cialis without prescription
buy viagra overnight delivery
order acomplia online
approved cialis pharmacy
cialis uk
order generic cialis
buy propecia cheap
cialis in bangkok
clomid for sale
zithromax pharmacy
viagra online cheap
order cheap cialis
online pharmacy viagra
buy cheapest cialis online
order generic viagra
cheap cialis overnight delivery
buy cheap viagra
find cheap cialis
buy zithromax without prescription
buy viagra on line
tablet cialis
purchase zithromax
cialis in australia
lowest price clomid
overnight cialis
cialis in us
clomid without prescription
cialis overnight delivery
cheap lasix
cheap synthroid
cheapest lasix
cheapest soma prices
viagra cheap
cheapest lasix prices
find cialis on internet
order viagra no prescription
zithromax online
compare cialis prices
find cheap viagra online
generic lasix
discount propecia
acomplia no prescription
generic cialis online
cheap viagra tablets
order viagra
buy soma cheap
propecia for sale
generic viagra cheap
cheap propecia tablets
cheap generic acomplia
viagra bangkok
discount viagra without prescription
levitra prices
cheapest accutane
propecia online
zithromax online cheap
lasix sale
where to buy lasix
buy cheap synthroid online
price of lasix
price of acomplia
find viagra no prescription required
viagra online without prescription
low cost cialis
cheap zithromax
propecia
cheap acomplia online
order cialis cheap online
cheap cialis
cialis bangkok
lowest price for cialis
cialis no online prescription
cheap cialis pharmacy
cialis canada
buy accutane
cheap cialis from uk
viagra sales
cialis from india
order cialis without prescription
order discount viagra
order accutane
find discount viagra
order cialis no rx
cialis prescription
buy propecia without prescription
cheap zithromax online
cheap viagra pill
buy cheap propecia
purchase acomplia
buying generic cialis
cialis online pharmacy
buy viagra online cheap
buy cheap levitra online
viagra for order
cheap cialis in uk
acomplia online
generic clomid
zithromax sale
where to buy clomid
buy viagra
viagra without a prescription
buy lasix online
purchase propecia
cheap cialis no rx
viagra side effects
order cheap cialis online
cialis online cheap
cialis drug
online propecia
generic cialis cheap
cialis
buy viagra no prescription required
accutane pharmacy
viagra discount
buy soma online
order viagra online
propecia pharmacy
accutane without a prescription
levitra without prescription
discount accutane
cheapest viagra
viagra no rx required
buy cialis
buy viagra cheap
order no rx cialis
cheapest cialis online
purchase levitra
cheapest zithromax
lasix without a prescription
zithromax
order no rx viagra
buy viagra lowest price
cialis vendors
cialis in malaysia
cheapest generic cialis online
cheap viagra
buy discount cialis
cialis from canada
buy soma
cialis malaysia
levitra pharmacy
synthroid no prescription
cheap cialis tablets
price of zithromax
order cialis in canada
discount soma
order cialis overnight delivery
soma cheap
zithromax prescription
order discount viagra online
viagra from india
propecia generic
buy cheap cialis internet
viagra buy
viagra uk
acomplia online cheap
order acomplia
cialis buy drug
buy cheap lasix online
levitra without a prescription
cialis free delivery
online acomplia
where to buy cialis
pharmacy viagra
accutane online cheap
cheapest generic viagra online
purchase accutane online
lowest price accutane
buy viagra online
generic soma
lasix no prescription
propecia without a prescription
synthroid discount
cheap generic accutane
viagra sale
viagra pill
discount viagra no rx
viagra free sample
no rx viagra
lasix online cheap
order cheap viagra online
viagra order
lasix
free viagra
clomid pills
buy cheap acomplia online
propecia prices
buy levitra without prescription
price of accutane
buy cheap viagra online
lowest price zithromax
soma
find cialis
find discount cialis
order viagra no rx
tablet viagra
viagra buy online
order synthroid
viagra no online prescription
soma prescription
lowest price acomplia
cheap viagra overnight delivery
cheap acomplia
discount viagra
find viagra without prescription
synthroid for sale
acomplia prescription
purchase synthroid online
cialis information
soma pills
order lasix
viagra no prescription
lasix without prescription
accutane pills
purchase acomplia online
zithromax online stores
cheapest soma
viagra cheapest price
compare cialis prices online
cheap viagra tablet
order cialis online
buy acomplia online
cheap synthroid tablets
viagra canada
cialis no prescription
viagra information
price of propecia
buy cialis generic
order soma online
order discount cialis online
cheap generic lasix
purchase viagra without prescription
viagra vendors
cialis medication
order viagra overnight delivery
viagra no rx
overnight viagra
cheap cialis online
clomid prices
cheap accutane
buy viagra from india
cialis tablet
cheap viagra no rx
viagra rx
buy accutane online
find no rx cialis
buy generic cialis online
cheap viagra without prescription
cheapest propecia
buy cheap propecia online
levitra online cheap
order viagra from canada
accutane no prescription
soma discount
cheapest synthroid
generic levitra
cialis price
online clomid
generic cialis
fda approved viagra
purchase cialis no rx
cialis without rx
cheapest acomplia
buy levitra
pharmacy cialis
accutane online stores
soma online stores
buy cialis from canada
clomid generic
propecia pills
synthroid prices
cheapest generic viagra
buy cheap levitra
buy cialis cheap
buy cialis no prescription required
viagra without prescription
cheap generic soma
accutane online
buy viagra from canada
find cialis online
cialis no rx
discount levitra
buy cialis online cheap
order cialis from us
viagra in us
buy cheap cialis online
cialis for sale
cheap price cialis
cialis buy online
order zithromax online
fda approved cialis
generic propecia
viagra malaysia
cheap cialis from usa
buying cialis
generic synthroid
viagra medication
propecia discount
cheap generic cialis
soma pharmacy
levitra discount
cheap generic propecia
viagra for sale
soma sale
online zithromax
acomplia
cheap viagra from canada
buy generic propecia
viagra in bangkok
buy cheap zithromax online
cheap generic levitra
cheap price viagra
buy cheap cialis
cheap cialis in canada
buy generic soma
cheap soma tablets
viagra prescription
lowest price levitra
buy viagra from us
cialis internet
buy cheapest cialis
buy viagra in us
buying viagra
cheapest viagra online
viagra overnight delivery
purchase soma
clomid no prescription
cialis pill
cheap generic viagra
levitra sale
order viagra in canada
viagra drug
synthroid cheap
order zithromax
cialis cheap price
buy cialis on internet
cost of viagra
clomid online
La forma más usual de ejecutar un script PHP es mediante navegador aunque también se puede ejecutar por shell. Ambos se ven afectados por el tiempo de ejecución del script. Además, dependiendo del servidor desde el que lo ejecutamos, tenemos que tener en cuenta la cantidad de memoria que vamos a usar. Y aún tenemos más cosas... No todos los tipos de error están configurados para mostrarse. Puede que el servidor tenga configurado mostrar sólo los errores importantes y los que él considera sólo alertas no nos van a aparecer...
En éste artículo voy a intentar explicar tres instrucciones muy útiles para controlar la ejecución de un script PHP: set_time_limit(), ini_set('memory_limit') y el error_reporting().
El límite de tiempo de proceso de un script php
Todo script PHP ocupa un tiempo de proceso del servidor al ejecutarse. Ése tiempo por defecto es 30 segundos, pero puede configurarse otro valor en la variable max_execution_time en el archivo de configuración (php.ini). El problema es que si no tienes el servidor en casa no será tan fácil acceder a ésa variable, pues los hostings acostumbran a fijar ellos un tiempo prudencial y no tienes acceso para configurar nada.
Pero podemos fijar un tiempo límite distinto al que venga por defecto usando la instrucción set_time_limit(). Esta función la debemos incluir al principio del script y acepta un parámetro numérico con el que indicaremos el número de segundos que debe esperar. Por ejemplo podemos usar:
Con ésto definiremos que espere 5 minutos (60 secs * 5 min = 300 secs). También podemos definir que no haya tiempo límite:
Aunque no es nada aconsejable, pues si el script contiene algun error o realiza alguna llamada externa que pueda tener dificultades, el servidor nunca lo detendrá.
Pero aún hay más. Realmente lo que hace ésta instrucción es resetear el contador de tiempo de proceso a zero y instaurar un nuevo límite. Si tenemos el límite de tiempo por defecto a 30 segundos y llamamos a set_time_limit(30) cuando llevamos 25 segundos de ejecución, en total el script podrá tardar 55 segundos (25 secs + 30 secs = 55 secs).
Por último, esta función no se ejecutará en un entorno dónde el PHP se esté ejecutando en modo seguro, forma en que muchos hostings baratos ejecutan los scripts por compartir muchos usuarios en el mismo servidor.
Podéis encontrar más información en el manual online de PHP: set_time_limit().
Límite de memoria usado por un script
Al igual que el tiempo de proceso, hay definido un límite de memoria en el archivo de configuración bajo la variable memory_limit, pero tampoco tendremos acceso a éste en un hosting normal. Además, en los hostings acostumbran a configurar un límite de memoria bastante bajo, como por ejemplo DreamHost y Arsys que lo tienen a 8 MegaBytes.
El problema es que con el uso de objetos y clases en PHP y varios requires enlazados ése límite es rápidamente sobrepasado. Además, si estamos trabajando con un script que maneja gran cantidad de datos, 8 megas es realmente poco.
De todas formas tenemos una función que varía ciertas variables iniciales y, gracias a ella, podemos ajustar el límite de memoria del script actual al valor que necesitemos: el ini_set(). Ésta función varía el parámetro especificado sólo durante la ejecución del mismo, y al acabar restaurará el valor por defecto. Para aumentar el límite de memoria a 64 MB debemos usar la función de la siguiente manera:
Con ésto al principio del script estaremos setando el límite de memoria a 64 para el script actual. Se debe tener especial cuidado en la M que sigue al 64, que especifica que la unidad es MegaBytes. Si no la ponemos, se va a tomar como Bytes, y éso es tan poco que puede que PHP no tenga suficiente memoria ni para mostrar un error de exceso de memoria
Reportando errores
PHP clasifica los errores en varios tipos diferentes, de forma que podemos escoger qué nivel queremos que nos muestre. Éstos errores (si no se cambia la configuración) van a mostrarse como si fueran prints, es decir, en medio de la página. Por ello a veces se establecen configuraciones para ocultar ciertos mensajes que puede que ya conozcamos y que no interfieren en el programa, simplemente por estética. Pero lo común (y mejor) es trabajar el código para eliminar todos los mensajes y tener un código error free.
Los tipos de errores son los siguientes:
Si nos fijamos tenemos un número que se refiere a cada error. Ése número es el valor decimal del bit que ocupa el error en la cadena binária, de forma que podemos definir varios errores a mostrar a la vez sumando los números de cada error (y el parser los desmembrará en cada error). Con algo de conocimientos de números binarios y definición de flags entenderás lo que digo, pero si no, no te preocupes, porque se aconseja definir los niveles de error con su nombre (que es una constante interna del PHP).
¿Cómo se usa? Deberemos poner el tipo de error a prestar atención como parámetro de la función:
Con éste estamos definiendo que queremos que PHP nos reporte todos los errores. Ojo que el E_ALL no incluye el E_STRICT. Por otro lado, aviso que al mostrarse todos los errores van a aparecer multitud! Veamos otra forma:
Esta vez estamos definiendo que queremos que nos muestren los errores, las advertencias y los fallos de parseo. Aquí por ejemplo nos libramos de los Notice, que son los típicos de no inicializar variables, etc.
El que usualmente viene por defecto es:
Éste nos va a mostrar todos los errores excepto el Notice. Nótese el carácter ^, que significa excepto.
Podemos encontrar más información en el manual de PHP: error reporting.
Tags: PHP, Programación
Escribe un Comentario