Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] strstr no funciona ejecutado en un cronjob

Estas en el tema de strstr no funciona ejecutado en un cronjob en el foro de PHP en Foros del Web. Hola He creado un script (página) en php la cual funciona perfectamente. La he configurado para que se ejecutara como un crontab y es entonces ...
  #1 (permalink)  
Antiguo 09/04/2013, 16:25
Avatar de atoleon  
Fecha de Ingreso: marzo-2007
Mensajes: 156
Antigüedad: 17 años, 1 mes
Puntos: 1
strstr no funciona ejecutado en un cronjob

Hola

He creado un script (página) en php la cual funciona perfectamente.
La he configurado para que se ejecutara como un crontab y es entonces cuando no funciona.
después de hacer varias pruebas ejecutando el script desde una conexión ssh utilizando este comando: php tarea_cron.php. He averiguado que cuando ejectuto el script desde esta conexión, la misma que debe usar el cronjob, la siguiente linea de código no se ejecuta o al menos no devuelve un resultado vacío:
Código PHP:
$idPedido strstr ($idPedido"<br"true); 
Lo que no entiendo es por qué cuando accedo desde el navegador funciona perfectamente, y sin emabargo, cuando lo hago desde el terminal no funciona esta funcion. De hecho en otra linea tengo esta funcion:
Código PHP:
$idPedido strstr ($idPedido" "); 
y si que se realiza correctamente desde navegador y terminal.

Bueno, espero podais ayudarme. Por si sirve de algo, el servidor es de 1&1 (como no).

Saludos a todos y gracias.
  #2 (permalink)  
Antiguo 09/04/2013, 16:35
Avatar de atoleon  
Fecha de Ingreso: marzo-2007
Mensajes: 156
Antigüedad: 17 años, 1 mes
Puntos: 1
Respuesta: strstr no funciona ejecutado en un cronjob

Ya he encontrado el problema. Cuando ejecuto desde el terminal se ejecuta una versión antigua de php (4.4.9) y cuando ejecuto desde el navegador lo hace con una versión php 5.4.
Ahora lo que no entiendo es por qué si los archivos están en el mismo servidor se ejecuta una versión en desde el navegador y otra desde el terminal.
  #3 (permalink)  
Antiguo 09/04/2013, 17:15
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: strstr no funciona ejecutado en un cronjob

Apache está configurado para usar PHP 5.4, mientras que, seguramente, el servidor tiene definido el path del PHP viejo antes que el nuevo.

Podrías especificar la ruta absoluta tanto en terminal como al crear el cronjob, ejemplo:

/var/bin/php-5.4/php /home/sitio/public_html/cron.php
__________________
- León, Guanajuato
- GV-Foto
  #4 (permalink)  
Antiguo 09/04/2013, 17:21
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: strstr no funciona ejecutado en un cronjob

Totalmente curioso, según el manual dicha función está vigente desde PHP 4.3.0 así que a menos que tengas un versión inferior no deberías tener problemas.

Edito: es cierto, el manual indica que después de PHP 5.3.0 el tercer parámetro fue agregado, eh ahí el detalle.

PDTA: que extrañgo que tengan instalado PHP 5.4 para CGI y 4.4.9 para CLI, servicio mediocre diría yo.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 09/04/2013, 19:02
Avatar de SirDuque  
Fecha de Ingreso: febrero-2009
Ubicación: Paso del Rey, Buenos Aires, Argentina
Mensajes: 975
Antigüedad: 15 años, 2 meses
Puntos: 89
Respuesta: strstr no funciona ejecutado en un cronjob

Podras probar por consola:
Consola:
php archivo.php

archivo.php
Código PHP:
<?php
echo strstr('[email protected]''@');
?>
Tambien podes probar:

Código PHP:
#!/usr/bin/php
<?php
echo strstr('[email protected]''@');
?>
dar permisos de ejecución.

Consola:
./archivo.php

y contarnos que pasa.
__________________
Mono programando!
twitter.com/eguimariano
  #6 (permalink)  
Antiguo 10/04/2013, 07:02
Avatar de atoleon  
Fecha de Ingreso: marzo-2007
Mensajes: 156
Antigüedad: 17 años, 1 mes
Puntos: 1
Respuesta: strstr no funciona ejecutado en un cronjob

Lo he solucionado de una manera muy sencilla. Eso si, buscando por mi cuenta porque desde 1&1 me decían que no se podía hacer. Que tenía que cambiar a un servidor dedicado y no se que más tonterías.
Bueno, simplemente lo que hice fue añadir un número, correspondiente a la versión, al comando php. Quedando de la siguiente manera.
php6 tarea_cron.php
He puesto php6 porque es la que ejecuta la versión 5.4 de php. Si ponía php5 ejecuta la versión 5.2.

Espero pueda servirle a alguien. Y muchas gracias a todos por los aportes.
Saludos

Etiquetas: cronjob
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:03.