En algunos momentos me siento tonto escribiendo este blog, pensando será que a alguien alguna vez le servirá esta información, pero luego pensé que somos muchos los consumidores de internet entramos a bajar música, videos, información, tareas (bueno yo no bajo tareas) pero pocos se dan a la tarea de contribuir con información, quien luego de hacer una buena tarea la sube por si a alguien más le sirve? la mayoridad dirá "NO si a mí me costo que les cueste", como opinión personal pienso que entre mas información compartamos seremos una mejor sociedad digital.
En fin, aquí otro caso, hace poco que estoy haciendo un sistema tipo HELP DESK y se me ocurrió que a los técnicos les interesaría mucho saber la ip de la maquina en donde se puso el caso que en la mayor parte de las veces es la maquina que tiene el problema así que probando funciones y código, termine con la siguiente función espero les sirva:
function obtenerIP() {
if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
}
elseif (isset($_SERVER['HTTP_VIA'])) {
$ip = $_SERVER['HTTP_VIA'];
}
elseif (isset($_SERVER['REMOTE_ADDR'])) {
$ip = $_SERVER['REMOTE_ADDR'];
}
else {
$ip = "0.0.0.0";
}
return $ip;
}
//De esta forma llamamos a la funcion y obtenemos la IP
$ip=obtenerIP();
Edsson Gonzalez DTodoIT
Desarrollando aplicaciones Web (PHP, Ajax, Jquery, MySQL)
lunes, 18 de julio de 2011
martes, 12 de julio de 2011
Dimencionar una imagen en PHP
Voy a tratar de escribir pequeños ejemplos de cómo resolver problemas que a veces se nos presentan mientras programamos, lo hará lo más simple posible, pues en mi caso aprendo mejor de simple a complejo.
Supongamos que queremos mostrar N numero de imágenes que se encuentran dentro de un directorio pero dichas imágenes tienen dimensiones diferentes (alto y ancho) pero queremos que al menos coincidan en una de esas dimensiones por ejemplo que todas tengan 80 pixeles de alto no importa el ancho.
Lo que necesitamos hacer es primero crear la ruta de la imagen:
$link_foto="fotos/nombre_del_archivo.jpg";
Luego verificamos que exista dicho archivo con la sentencia file_exists de este modo
if (file_exists($link_foto)){
Creamos el objeto de la imagen del tipo jpeg
$img = ImageCreateFromJpeg($link_foto);
Obtenemos su dimensión X
$x = ImageSX($img);
Obtenemos su dimensión Y
$y = ImageSY($img);
Definimos por ejemplo el ancho que queremos en todas las imágenes en pixeles, voy a decirle que quiero 60px de ancho
$ancho=60;
Obtenemos el porcentaje que 60 px de ancho representa en $x con una regla de 3 simple si $x es el 100% de la imagen cuanto representa $ancho;
$por_ancho=(60*100)/$x;
Con este porcentaje podemos obtener el alto en relación al ancho
$alto=round($y*($por_ancho/100));
Cerramos el IF
}
El Código quedaría de la siguiente forma
<?php
$link_foto="fotos/nombre_del_archivo.jpg";
if (file_exists($link_foto)){
$img = ImageCreateFromJpeg($link_foto);
$x = ImageSX($img);
$y = ImageSY($img);
$ancho=60;
$por_ancho=(60*100)/$x;
$alto=round($y*($por_ancho/100));
}
?>
Y para mostrar la imagen en HTML lo haríamos así
<img src="<?php echo $link_foto; ?>" width="<?php echo $ancho; ?>" height="<?php echo $alto; ?>" />
martes, 21 de junio de 2011
Compilador en PHP
Creo que llamar a este post compilador me parece un poco presumido de mi parte por lo que la palabra compilador significa y lo que conlleva pero la historia es esta, se nos pidió crear un sistema simulador de un compilador que interpretara un lenguaje de programación en español con esta estructura:
[inicio]
[entradas]
[variables] [constantes] [ingresos]
[calculos]
[variable]=[variable/termino] [ + - * / ] [variable]
[decisiones]
si [condicion] entonces [calculos] sino [calculos]
[salidas]
mostrar [variable/termino]
[fin]
A dicho lenguaje se le podía aplicar las reglas que nosotros consideráramos necesarias (reglas están en la portada del proyecto) y se dio libertad de escoger el lenguaje en el cual debía ser programado este compilador, obviamente yo escogí PHP porque PHP? pues por tiempo, por experiencia en el lenguaje, por que me gusta y porque todos obviamente lo harían en JAVA o C, debo aclarar si el proyecto fuera hacer un compilador real que llegue al nivel más bajo escogería C.
Que etapas consideramos en el proyecto:
1. Análisis Léxico
2. Análisis Sintáctico
3. Análisis Semántico
4. Generación de código intermedio
5. Código objeto
Acá les dejo un diagrama de flujo que un compañero realizo de cómo funciona este compilador y más abajo les dejo el link de acceso a un hosting temporal que tengo mientras recaudo fondos para reactivar mi host personal.
Cualquier duda con gusto escriban un post, el código fuente no puedo subirlo pero si ayudarles con alguna duda.
Link de acceso al proyecto http://bit.ly/jzaugE
Colaboradores de este proyecto ( Jose Jonfe, Erick Mencu)
[inicio]
[entradas]
[variables] [constantes] [ingresos]
[calculos]
[variable]=[variable/termino] [ + - * / ] [variable]
[decisiones]
si [condicion] entonces [calculos] sino [calculos]
[salidas]
mostrar [variable/termino]
[fin]
A dicho lenguaje se le podía aplicar las reglas que nosotros consideráramos necesarias (reglas están en la portada del proyecto) y se dio libertad de escoger el lenguaje en el cual debía ser programado este compilador, obviamente yo escogí PHP porque PHP? pues por tiempo, por experiencia en el lenguaje, por que me gusta y porque todos obviamente lo harían en JAVA o C, debo aclarar si el proyecto fuera hacer un compilador real que llegue al nivel más bajo escogería C.
Que etapas consideramos en el proyecto:
1. Análisis Léxico
2. Análisis Sintáctico
3. Análisis Semántico
4. Generación de código intermedio
5. Código objeto
Acá les dejo un diagrama de flujo que un compañero realizo de cómo funciona este compilador y más abajo les dejo el link de acceso a un hosting temporal que tengo mientras recaudo fondos para reactivar mi host personal.
Cualquier duda con gusto escriban un post, el código fuente no puedo subirlo pero si ayudarles con alguna duda.
Link de acceso al proyecto http://bit.ly/jzaugE
Colaboradores de este proyecto ( Jose Jonfe, Erick Mencu)
Suscribirse a:
Entradas (Atom)