Entradas con tag ‘PHP’
Publicado por evelio hace 1241 dias, en: Desarrollo, PHP, Web.
En el capítulo anterior, el blogoamigo Shakaran aconsejó (Gracias!) usar mt_rand(); en lugar de rand();, función que no conocía y al parecer su uso al generar números aleatorios es más recomendable, lo cual fue cierto hasta la nueva implementación de rand();, la cual es más rápida que la mismísima mt_rand();, pero como las palabras se las lleva el viento y teniendo un área de Pruebas (a.k.a. Ejemplos) acá están las evidencias:
Código
<?php //Función a llamar varias veces function generarAleatorios($veces=100000) { echo "<h2 style=\"margin-top:20px;\">Se generaron {$veces} (x 2) números aleatorios</h2>"; $tiempoInicial = microtime(true); $i = 0; while($i < $veces) { rand(); $i++; } $tiempoFinal = microtime(true); $tiempoTotal = $tiempoFinal - $tiempoInicial; echo "Fueron <strong>{$tiempoTotal}</strong> segundos usando <strong>rand();</strong><br/>"; $tiempoInicial = microtime(true); $i = 0; while($i < $veces) { mt_rand(); $i++; } $tiempoFinal = microtime(true); $tiempoTotalMt = $tiempoFinal - $tiempoInicial; echo "Fueron <strong>{$tiempoTotalMt}</strong> segundos usando <strong>mt_rand();</strong><br/><br/>"; if($tiempoTotal < $tiempoTotalMt) { $diferencia = $tiempoTotalMt - $tiempoTotal; echo "<strong style=\"color:green;\">rand();</strong> fue más rápido por <strong>{$diferencia}</strong> segundos.<br />"; } else if($tiempoTotal > $tiempoTotalMt) { $direrencia = $tiempoTotal - $tiempoTotalMt; echo "<strong style=\"color:red;\">mt_rand();</strong> fue más rápido por <strong>{$diferencia}</strong> segundos.<br />"; } else { echo "<strong>rand();</strong> y <strong>mt_rand();</strong>, tomaron exactamente el mismo tiempo <strong>{$tiempoTotal}</strong> segundos, increíble!!.<br />"; } } //Todo listo!! //Primero con nuestros 3 números para los colores a ver como van con tan poquitos generarAleatorios(3); //Otros números más redondos generarAleatorios(10000); generarAleatorios(1000000); ?>
Ejemplo
Puedes ver el código funcionando aquí, así que ahora puedes usar rand(); sin perder anhelados micro-segundos
Referencias
Tags: aleatorio, PHP, prueba, rendimiento
Publicado por evelio hace 1242 dias, en: Desarrollo, PHP, Web.
De las cosas que me encantan del tema actual de este blog, es que en cada impresión de página el fondo cambia de color aleatoriamente, el código es muy sencillo y algo sucio:
Código
Hay varias formas de hacerlo, pero te mostraré 3:
-
Color en formato HTML
<?php //Obtenemos los canales rojo, verde y azul aleatoriamente $r = rand(0,255); $g = rand(0,255); $b = rand(0,255); //Los convertimos a hexadecimal $rh = dechex($r); $gh = dechex($g); $bh = dechex($b); //Generamos el color $color=($r>15 ? $rh : '0'.$rh ).($g>15 ? $gh : '0'.$gh ).($b>15 ? $bh : '0'.$bh ); /* Lo agregamos al documento en un elemento style también podrías agregarlo mediante la propiedad style del elemento body */ echo '<style>body{ background-color:#'.$color.' !important; }</style>'; /* Como notarás se hacen comprobaciones para que en caso de que algún canal generado sea menor igual a <strong>F</strong> (15 en decimal) se le agregue un <strong>0</strong> (cero) a la izquierda para que el color quede bien formado y sea válido. */ ?>
-
Color usando rgb de CSS
<?php //Obtenemos los canales rojo, verde y azul aleatoriamente $r = rand(0,255); $g = rand(0,255); $b = rand(0,255); /* Podríamos saltarnos las 3 sentencias anteriores y colocarlo directamente, pero lo hago por legibilidad Lo agregamos al documento en un elemento style también podrías agregarlo mediante la propiedad style del elemento body */ echo '<style>body{ background-color:rgb('.$r.', '.$g.', '.$b.') !important; }</style>'; ?>
-
Color usando porcentajes y rgb de CSS
<?php //Obtenemos los porcentajes para los canales rojo, verde y azul aleatoriamente $r = rand(0,100); $g = rand(0,100); $b = rand(0,100); /* Podríamos saltarnos las 3 sentencias anteriores y colocarlo directamente, pero lo hago por legibilidad Lo agregamos al documento en un elemento style también podrías agregarlo mediante la propiedad style del elemento body */ echo '<style>body{ background-color:rgb('.$r.'%, '.$g.'%, '.$b.'%) !important; }</style>'; ?>
Ejemplo
Aprovecho esta entrada tan sencilla para inaugurar un nueva sección llamada Ejemplos, puedes ver el ejemplo de esta entrada aquí.
Publicado por evelio hace 1472 dias, en: PHP, Ubuntu, Web.
Originalmente este post era para responder donde esta el php.ini pero seria muy “vacio” así que después de configurar LAMP con Ubuntu vamos a configurar un lugar donde colocar las librerías PHP para no tener que incluirlas en cada aplicación… para este caso utilizaremos como ejemplo:
Zend Framework es mi framework para PHP favorito, aunque eventualmente bailo Kumbia
vamos a configurar el include_path dentro del php.ini para que en nuestro BootStrap no sea necesario incluir el path del framework en cada aplicación ni nai más… así que manos a la ubre:
1. Crearemos nuestro “vertedero” de Librerías, la idea es meter allí todas las librerías a utilizar globalmente por nuestras aplicaciones…
$ mkdir /ruta/al/vertedero
yo la he creado en /home/evelio/Desarrollo/web/phpLibs, tu elige donde la quieres prefieras por ej. algo más adecuado como en /usr/share/php/ o según tu acomodo
…
me he bajado la 1.5.1 en tar:
ZendFramework-1.5.1.tar.gz
que es la lastest a la fecha…
3. Descomprimimos el contenido de la carpeta library dentro de nuestro archivo descargado en el vertedero…
para mi caso la ruta dentro de File Roller es
/ZendFramework-1.5.1/library/
me a quedado /home/evelio/Desarrollo/web/phpLibs/Zend la raíz al framework
4. editamos el php.ini para configurar en el include_path del vertedero:
$ sudo gedit /etc/php5/apache2/php.ini
esa es la ruta
bajamos a:
;;;;;;;;;;;;;;;;;;;;;;;;;
; Paths and Directories ;
;;;;;;;;;;;;;;;;;;;;;;;;;
he incluimos:
include_path = ".:/ruta/al/vertedero"
para mi caso a quedado include_path = “.:/home/evelio/Desarrollo/web/phpLibs”
salvamos
5. listo! ahora todo lo que pongamos en el vertedero lo tendremos a un require de distancia
Publicado por evelio hace 1482 dias, en: Desarrollo, Ubuntu, Web.
Para configurar tu servidor local con Linux, Apache MySQL y PHP (LAMP) con Ubuntu es tan sencillo como:
Abre el gestor de paquetes Synaptic (en Sistema > Administración > Gestor de paquetes Synaptic)
Allí abrimos menú Editar > Marcar paquetes por tarea…
y simplemente chuleamos LAMP Server
damos click en Aceptar …
también podemos instalar en este paso phpMyAdmin (mira más abajo) aunque no es camisa de fuerza para nadie pero es una gran utilidad
si no pues das Aplicar y ya esta te preguntara luego el password para el usuario root de MySQL
Para instalar phpMyAdmin solamente damos click en botón Buscar, buscamos por phpmyadmin y le marcamos para instalar dando click derecho > Marcar para instalar
nos preguntará si queremos marcar también las dependencias a lo cual le decimos que sí osea Marcar…
luego damos click en el botón Aplicar a lo cual nos preguntara de nuevo si estamos seguros y le diremos que Aplicar… esperamos un rato a la descarga de paquetes…
nos preguntara que servidor queremos configurar automaticamente a le diremos que apache2:
y voilà ya tenemos nuestro local servidor o localhots corriendo:
nota que por defecto la carpeta www o htdocs o como quieras llamarle a la raiz de documentos del servidor esta en /var/www/
para cambiarla podemos hacerlo con poderes de supervaca:
$ sudo gedit /etc/apache2/sites-available/default
y cambiamos /var/www en “DocumentRoot /var/www/” y <Directory /var/www/> por donde queramos por ejemplo a nuestro home /home/tu-usuario/www, guardamos y listo… ten en cuenta que www debe existir
Eso es todo nativos





