Muchos programadores piensan que php es diferente en linux y windows, pues aunque hay sus diferencias no son graves. Hasta que no haces un hard code no notas los problemas reales.
Los errores se deben muchas veces a la diferencia en que los sistemas operativos manejan sus sistema de archivos. Algunas son:
- El separador de directorios(carpeta) en linux es / y en windows es \.
- En windows una carpeta llamada unacarpeta es igual a unaCarpeta, es decir, no hay diferencia de minúscula y mayúscula. A diferencia de Windows, en linux las carpetas sí serían diferentes.
Típicas ocasiones cuando se cometen estos errores:
- Como dije anteriormente, los sistemas de ficheros en linux y windows se manejan diferente. Asi que estas consultas sql (MySQL)en un servidor en windows serian exactamente iguales, no así en linux.
Código :
SELECT * FROM `Table`; SELECT * FROM `table`;
Ahora piensan :
"Maikel esta loco"
¿Qué tiene que ver el sistema de archivos con las sentencias SQL?.
Pues les comento que MySQL guarda la base de datos y las tablas en carpetas y archivos respectivamente
.Algunas versiones de phpmyadmin te muestran los nombres de las tablas en minuscula, asi se hayan en escrito con mayuscula en su definición, por lo que tendemos a confundirnos al escribir las sentencias SQL. - Cuando estamos tratando de revisar una ruta de un directorio con funciones como strrpos, se debe hacer para ambos sistemas operativos para no tener problemas de portabilidad. Ejemplo:
Código :
function dirName ( $dir ) { $dir = realpath( $dir ); $pos = strrpos( $dir , "\\" ); //Windows if ($pos === false) { $pos = strrpos( $dir ,"/"); //Linux :) } $dir = substr( $dir,$pos+1,strlen($dir)-$pos ); return $dir; } echo dirName(dirname (__FILE__));

Maikel :
Código :
function dirName ( $dir ) { $dir = realpath( $dir ); $pos = strrpos( $dir , "\\" ); //Windows if ($pos === false) { $pos = strrpos( $dir ,"/"); //Linux :) } $dir = substr( $dir,$pos+1,strlen($dir)-$pos ); return $dir; } echo dirName(dirname (__FILE__));Gracias
Por Duilio el 26 de Diciembre de 2006
Para quienes les toca probar en windows y luego subir a linux (como a mi), a veces tambien es buena opcion agregar una constante, por ejemplo
define('S','\\') para windows y luego cambiarla a
define('S','/') cuando se vaya a subir todo en linux...
tambien me gusta trabajar siempre con los archivos y tablas en minusculas para evitarme esos rollos de compatibilidad (y cuando trabajaba en la empresa, para que los de redes no me insultaran
Por Duilio el 26 de Diciembre de 2006
include_once('carpeta'.S.'archivo.php');
Por puma el 13 de Marzo de 2007
Por luis el 02 de Abril de 2007
Por Rony el 11 de Abril de 2007
Mi cuenta de correo es rrodriguez761809@gmail.com
saludos
Por capricornio_120_dyg el 16 de Abril de 2007
Por consuelo el 24 de Abril de 2007
Por maria el 17 de Agosto de 2007
mi correo es andromeda0216@hotmail.com
Por HHH el 21 de Septiembre de 2007
KING OF KING
Por lilian el 26 de Octubre de 2007
Por lilian el 26 de Octubre de 2007
mi dirección es analilian12@lartinmail.com
Por SkuNk el 04 de Diciembre de 2007
basename(dirname(__FILE__));
Por monica el 20 de Diciembre de 2007
Por yacmali el 27 de Abril de 2008
mi direccion de correo es yacmali@hotmail.com
gracias...
Por Ivans17 el 19 de Mayo de 2008
Por Jorge Cartagena el 05 de Febrero de 2009
porfa ayudenme
jorge_boy89@hotmail.com
Por david el 22 de Julio de 2009
Por Andrés el 28 de Julio de 2009
Por DCCZ el 29 de Octubre de 2009
Por Jorge Abraham el 28 de Enero de 2012
$fp = fopen($archivo, "w") or die ("no se puede abrir $archivo");
fwrite($fp, $trama) or die ("no se puede escribir");
fclose($fp);
En Windows ejecuta perfecto, pero en Linux me dice que no se puede abrir el archivo.
Ya le di permisos a la carpeta destino, probe asignando 755, 775 y hasta 777 y nada.
Alguien puede orientarme al respecto?