Blog what I write

Migrar de php4 a php5

post - - 4 replies -

Días atrás me encontré ante la tediosa tarea de migrar una aplicación (bastante grande) programada en php4 a un servidor bajo php5. Voy a exponer en este post algunas de las diferencias encontradas y que pueden ahorrar algún dolor de cabeza 😉

Algunas incompatibilidades

1.- En vez de copy() es preferible usar la función move_uploaded_file(), o mejor aún las funciones FTP como ftp_put() lo cual garantiza una transferencia más rápida y segura.
2.- Las variables del tipo $HTTP_* deben ser sustituidas por $_POST, $_GET, etc. A estas alturas es obvio pero hace años no lo era tanto. Por ejemplo: $HTTP_POST_FILES en php5 debe ser $_FILES.
3.- Debemos prestar mucha atención a los permisos otorgados a los directorios y al safe_mode.
4.- Las matrices deben siempre accederse por su índice $matriz[‘id’] nunca $matriz_id.
5.- En php4 era posible construir matrices en los campos html:

<input name="foto[]" type="image" />

Evitando esto potenciamos los estándares:

<input name="foto_x" type="image" />

6.- Las variables enviadas por formularios deben ser accedidas a través de $_GET, $_POST, así como debemos usar las variables superglobales en todo momento, además de tener en cuenta el register_globals. Si tenemos toda nuestra aplicación programada como en php4 o php3 y haciendo uso de las variables directamente (no las superglobales), podemos optar por el uso de la función extract(). Ejemplo:

extract($_POST,EXTR_SKIP);

A partir de ese momento ya podemos usar $mi_var_post como se venía haciendo.

7.- En php5 debemos definir la zona horaria con date_default_timezone_set().

Estos son solo algunas cuestiones resumidas, y este es un post abierto, así que si tienes alguna incompatibilidad o puntualización al respecto, sera un placer que lo expongas aquí.

Más información

  1. Migración desde PHP 4 a PHP 5 (manual oficial)
  2. Cómo migrar tus aplicaciones de PHP4 a PHP5
  3. PHP4 y PHP5: ¿Cuál elegir? ¿Migrar o no Migrar? El advenimiento de PHP6
  • Pingback: webeame.net()

  • sX

    en el caso del ejemplo de ” no lo entiendo… como puedo recoger estas variables si no se cuantas vienen?(ya que se puede aumenter mediente javascript el nº de campos de un formulario polr ejemplo.)

    Y por el tema de estandares… se hace de la misma manera que cuando pasas un enlace con variables index.php?var1=1&var_2=2
    pero aplicando los caracteres [] en su entidad HTML.

    Hay otra manera?

  • sX

    Soy el de antes… debes tener el strip_tags me referia a caso 5

  • engo

    Muy util el articulo, Gracias