Archivo

Entradas Etiquetadas ‘windows’

Barra al final del directorio en PHP: 4 formas a elegir

Lunes, 18 de Enero de 2010 Gaspar Fernández Sin comentarios

Cuando queremos representar un directorio; podemos obtenerlo de varias formas: /home/usuario/documentos en *nix o C:\Document and Settings\Usuario\Mis Documentos en Windows. Aunque lo mismo podemos representarlo /home/usuario/documentos/ y C:\Document and Settings\Usuario\Mis Documentos\ (es lo mismo, pero con una barra al final).

El problema en PHP, viene a la hora de llamar archivos de ese directorio, hay ocasiones en las que no sabemos si la variable en donde tenemos almacenado el directorio tiene barra al final o no; entonces debemos hacer alguna función que incluya la barra correspondiente si hace falta.

Estos dos primeros script los he sacado de Jonas John Code Snippets:

1
2
3
4
5
6
7
8
9
10
11
12
function add_ending_slash($path){
 
    $slash_type = (strpos($path, '\')===0) ? 'win' : 'unix';  
    $last_char = substr($path, strlen($path)-1, 1);
 
    if ($last_char != '/' and $last_char != '\') {
        // no slash:
        $path .= ($slash_type == 'win') ? '\' : '/';
    }
 
    return $path;
}
1
2
3
4
5
6
7
8
9
10
11
12
function normalize_path($path){
 
    // DIRECTORY_SEPARATOR is a system variable
    // which contains the right slash for the current
    // system (windows = \ or linux = /)
 
    $s = DIRECTORY_SEPARATOR;
    $path = preg_replace('/[\/\\\]/', $s, $path);
    $path = preg_replace('/'.$s.'$/', '', $path) . $s;
 
    return $path;
}

Para este último, tenemos que hacer antes:

1
define("DIRECTORY_SEPARATOR", (PHP_OS=='Windows') ? '\':'/';

Otras dos alternativas:

1
2
3
4
5
6
function ending_slash($path)
{
  $sep = (PHP_OS == 'Windows')? '\':'/';
  $path .= (substr($path,-1) == $sep)? '':$sep;
  return $path;
}
1
2
3
4
5
6
7
function ending_slash2($path)
{
  $sep = (PHP_OS == 'Windows')? '\':'/';
  if ($path)
    $path .= ($path[strlen($path)-1] == $sep)? '':$sep;
  return $path;
}

La última no es muy elegante, pero ahí queda. Las dos últimas son muy parecidas entre sí. Y es una función interesante para nuestra biblioteca de funciones particular.

Categories: PHP Tags: , , , , ,

Smartbooks desde el siglo XX…

Viernes, 8 de Enero de 2010 Gaspar Fernández Sin comentarios
Un nuevo cacharro informático

Un nuevo cacharro informático

…o, tal vez, desde una época en la que no estuvimos muchos de nosotros. Leo en un artículo de El País la noticia de un nuevo cacharro informático; es una fusión entre un netbook y un smartphone (de ahí el nombre), y entre otras cosas destaca su gran duración de la batería (cosa que está muy bien; hago viajes largos y me vendría bien poder trabajar durante todo el viaje; aunque no sé cuánto tiempo durará la batería, ya que supongo que en unos dos años no será ni un 40% de lo que es recién comprado). Pero lo que más me llama la atención del artículo es la naturalidad con la que dice:

Se acabó el esperar un par de minutos para que se encienda y se conecte a la Red.”

Hace referencia a que este nuevo artilugio podrá estar encendido todo el tiempo tal y como lo hace un móvil actualmente; pero dando datos concretos. ¿ Es normal que un ordenador tarde dos minutos en arrancar ? Es cierto que conozco personas que encienden el ordenador y se van a tomar un café mientras arranca; sé que a veces da pereza arrancar el ordenador y el navegador y poner una dirección web y dar a enter, y seguro que es mucho más rápido tenerlo encendido y sólo escribir.

Pero creo que hay que basarse en algunos datos:

  • Mi portátil, con 3 años y medio de antigüedad, tarda unos 30s.
  • Un netbook que configuré hace unos días tarda exactamente 40s.
  • En una pequeña encuesta en Facebook, sólo los usuarios de Windows tienen que esperar 2 minutos o más para arrancar (por lo general), mientras los usuarios de Mac y Linux tardan menos de 1minuto.

Nos encontramos en la carrera de los tiempos de arranque:

También es verdad que muchos usuarios todavía usan Windows Vista, y sus tiempos de arranque son muy altos; aunque si pensamos en el orden lógico de las cosas, en los ‘90 mi ordenador no tardaba dos minutos arrancando, y hasta 2004 fue creciendo el tiempo a medida que tenía un ordenador más potente… todo hasta que me pasé definitivamente a GNU/Linux, por qué será. Parece que sólo Microsoft se demora por el momento, aunque hayan conseguido que W7 arranque en 11seg (aunque no al alcance de cualquiera).

Foto: nDevilTV

Visita otras webs de la red