Archivo

Obtener el día de la semana correspondiente a una fecha especificada con php (mktime y date).

diciembre 11th, 2009 by Webmaster

A continuación dejo una simple función que permite realizar lo ya indicado en el titulo. Es algo realmente simple, pero cuando yo necesite este dato, tuve que buscar durante unos minutos en la documentación de php y después preparar la función.

Como es un trozo muy pequeño de código, es posible que este se pierda. Para evitar que esto ocurra y para aquellos usuarios que lo necesiten expongo el código.

<?php
/**
 * Obtener el día de la semana para una fecha concreta.
 */
function diaSemana($ano,$mes,$dia)
{
	// 0->domingo	 | 6->sabado
	$dia= date("w",mktime(0, 0, 0, $mes, $dia, $ano));
		return $dia;
}
 
/**
 * Ejemplo de uso
 */
$diaSemana = diaSemana("2009", "12", "10");
echo $diaSemana;
 
/**
 * Imprime:
 * 4 | El cuatro corresponde a Jueves
 */
?>

Etiquetas: ,

Buscar enlaces en una cadena y convertirlos en enlaces HTML con php (preg_replace_callback).

diciembre 10th, 2009 by Webmaster

Actualmente casi todos los sitios webs tiene algún método para reconocer enlaces. Da igual donde dejemos un comentario. Puede ser un foro, un chat, un blog, etc. Seguro que cuando enviemos un mensaje, si este contiene algún enlace, una vez publicado podremos pinchar sobre él.

Yo como usuario, lo encuentro bastante útil y cómodo. Por un lado, si soy un visitante, es algo incomodo copiar y pegar el enlace en la barra de direcciones. Es mucho mas fácil hacer “click” sobre el enlace.

Por otro lado, si soy el autor de un comentario y quiero dejar un enlace, solo tengo que escribirlo, no tengo que preocuparme de hacer que sea pinchable.

Por ese motivo, dejo a vuestra disposición una clase en php para leer un texto y convertir en etiquetas HTML todos los enlaces que contenga el texto.

Actualmente solo reconoce los enlaces que comienzan por “http://” pero puede mejorarse para que detecte mas enlaces o realice mas operaciones, esto ya depende de las necesidades de cada uno.

A continuación el código y un ejemplo de uso.

<?php
/**
 * Con esta clase podemos convertir los enlaces de un texto.
 * Por ejemplo si escribirmos:
 * http://www.ejemplo.com
 * se convertirá automáticamente en:
 * <a href="http://www.ejemplo.com">http://www.ejemplo.com</a>
 */
class Enlaces
{
    private $_texto;
    private $_logs;
    private $_debug = false;
    private $_existen = false;
 
    public function __construct($texto = false, $debug = false)
    {
        //Saber si hay que mostar los mensajes de debug por pantalla o no.
        if($debug) {
            $this->_debug = true;
        }
 
        //Verificar que se indicó un texto a parsear
        if(!$texto || empty($texto)) {
            $this->_logs = "Error! Usted no indico la cadena a parsear. rn";
        } else {
            $this->_texto = $texto;
        }
 
        //Parsear texto
        if(!$this->parsear()) {
            $this->_logs .= "Error! El texto indicado no se puede parsear o no
        tiene enlaces. rn";
        } else {
            $this->_logs .= "Texto parseado correctamente";
        }
    }
 
/*
 * Parsear el texto buscando enlaces. Se buscan las cadenas que comienzan por:
 * "http://" sin comillas.
 *
 * Retorna: true si se parsea correctamente, false si no se parsea o
 * si no existen enlaces en el texto.
 */
    private function parsear()
    {
        $this->_texto = preg_replace_callback("/(http://[w/*?*&*=*.*]+)/",
                             "Enlaces::enlacesDetectados", $this->_texto);
 
        if($this->_texto == "NULL" || $this->_existen == false) {
            return false;
        } else {
            return true;
        }
    }
 
/**
 * Convierte los enlaces en enlaces HTML. Si queremos añadir atributos a los enlaces generados, debemos
 * hacerlo aquí.
 */
    private function enlacesDetectados($coincidencias)
     {
         foreach($coincidencias as $enlace)
         {
             $this->_existen = true;
             $enlace = "<a href='" . $enlace . "'>" . $enlace . "</a>";
                return $enlace;
         }
     }
 
/**
 * Devuelve el texto con los enlaces convertidos.
 */
    public function getTexto()
    {
        return $this->_texto;
    }
 
/**
 * Devuelve el logs generado durante la ejecución. Solo devuelve el logs si se indico previamente.
 */
    public function getLogs()
    {
        if($this->_debug) {
            return $this->_logs;
        }
    }
}
 
/**
 * EJEMPLO DE USO
 */
 $texto = " Este es un texto de prueba. Con un enlace a http://www.google.es y
otro enlace a http://google.com, &iquest; Que te parece ?";
 
$enlaces = new Enlaces($texto);
echo $enlaces->getTexto();
 
/**
 * Se imprime:
 *
Este es un texto de prueba. Con un enlace a <a href='http://www.google.es'>http://www.google.es</a> y
otro enlace a <a href='http://google.com'>http://google.com</a>, &iquest; Que te parece ?
 
 */
?>

Etiquetas: , ,

Las “chuletas” (cheat sheet) todas en un mismo sitio

diciembre 9th, 2009 by Webmaster

El otro día durante el trabajo, necesite realizar una función para sumar y restar fechas. En ese momento no recordaba el orden de los parámetros de la función “mktime()”, por lo tanto, abrí firefox, teclee www.php.net y utilizando el buscador, encontré la documentación de “mktime()”.

Mientras realizaba todo esto pensé, si tuviera a mano ahora una “chuleta” (cheat sheet) con un simple vistazo habría resuelto mi duda. Entonces en ese mismo instante me cree una nota para buscar al final del día una “chuleta” en php.

Cuando me puse a buscarla me encontré con una grata sorpresa. Existe un sitio llamado http://www.cheat-sheets.org/ que ofrece chuletas de todo tipo.

Personalmente me descargue las chuletas de php, javascript y mysql. A continuación dejo los enlaces directos:

PHP: http://www.cheat-sheets.org/#PHP
JavaScript: http://www.cheat-sheets.org/#JavaScript
Mysql: http://www.cheat-sheets.org/#MySQL

Etiquetas: , ,