Most And Least Read Posts Widget, muestra las lecturas a tus posts

“Most and Least Read Posts Widget” is a free plugin for WordPress, developed by the Whiletrue.it staff to show lists of the most and least read posts.

Valencia, 31/05/2012, G.B.
Siguiendo el tema de los plugins de WordPress para mostrar el alcance de tus posts, las lecturas a los mismos, quiero comentaros otro que tengo instalado aquí, en KnowHow (comprobar el inicio y final de este post). Se trata de  Most And Least Read Posts Widget.  Como todos los plugins del CMS, lo puedes instalar desde el repositorio de plugins de tu Escritorio de WordPress o de la página de plugins de WordPress (ya os he dejado el enlace). Aquí embebo la captura de pantalla:

Most And Least Read Posts Widget, muestra las lecturas a tus posts
Una alta puntuación (la máxima), ¿verdad? ¿Y en qué consite Most And Read Post Widget? Este plugin para WordPress uestra dos listas: la de los posts más leídos y la de los menos leídos. Dispone de las siguientes opciones de personalización:

  • Excluir posts cuyos títulos incluyan ciertas palabras
  • Mostrar el nnúmero de lecturas (accesos) al post
  • Excluir posts con un determinado número de días (posts antiguos)

El plugin muestra los hits (accesos a los posts) a partir del momento en que se ha instalado, almacenando los datos en el campo personalizado “custom_total_hits“, sin necesidad de acceder a cuenta externas. Además, Most And Least Read Posts Widget descarta los accesos de los robots más populares, incluyendo Googlebot. De esta forma, el cálculo de accesos es real, ‘humano’.

Una opción muy interesante (yo la estoy utilizando) es mostrar el número de accesos o lecturas en el mismo post, utilizando una frase personalizada que puedes cambiar en la página de configuración del plugin. Ejemplo: Este post ha sido leído X veces. Puedes cambiar la posición y el estilo (style) de la frase concreta. Y si quieres, puedes mostrar los hits a tus posts en cualquier posición de la plantilla loop.php. Esta es la función php que debes utilizar para ello:

<?php echo most_and_least_read_posts_get_hits(get_the_ID()); ?>

Como podéis imaginar, si todavía no lo habéis probado, vale la pena. Un buen y útil plugin para analizar tu contenido publicado.

Para más información, visitad la página del autor el plugin.

Más sobre las matrices en PHP: tipos de arrays

[Matrices en PHP II]

Valencia, 17/03/2011, G.B.
Ya hemos hablado sobre las matrices en PHP pero de una forma muy general. Con las matrices realmente podemos hacer muchas cosas, que ya iremos viendo y descubriendo (yo me incluyo).

Ahora lo que vamos a ver son los distintos tipos de matrices. He basado este post en un tutorial de Webtaller.com. En los ‘créditos’, al final de este post, adjunto el enlace.  Otro interesante enlace al respecto es el siguiente: www.php-es.com/language.types.array.html. Ahora, vamos ‘al tajo’.

Podemos diferenciar entre los dos tipos de matrices existentes:

Indexada: Son las matrices cuyo acceso a los elementos se realiza por la posición que ocupan dentro de la estructura (empezando siempre desde el cero). Ejemplo: $tipos_matrices[0]
Asociativa: Matriz en la que los elementos están formados por pares clave-valor y el acceso se realiza proporcionando una determinada clave. Ejemplo: $tipos_matrices[‘asociativa’]

Cómo crear las matrices:

De forma implícita: consiste en indicar a la matriz el elemento (tanto por su posición o por su clave, tal y como acabamos de indicar).
Un ejemplo:  $gestores_contenido[0]=’Wordpress’;

Si no indicamos la posición de la matriz, el array cogeré el valor siguiente al último valor que haya sido introducido.
Ejemplo: $gestores_contenido[]=’Joomla’ // tomaría como valor 1 ya que el último introducido era el cero (0).

Mediante array(): Pasamos los elementos como parámetros. Si es una matriz indexada, toman la posición que ocupan en la creación de la matriz. Y si es unaa matriz asociativa, se les asigna su valor mediante “=>”. Ejemplo: $lenguajes=array(‘Tipo’=>’Script’, ‘Nombre’=>’JavaScript’);

PHP no sólo se limita a la existencia de matrices por sí mismo,  sino que existen matrices de matrices, o lo que es lo mismo, matrices multidimensionales. Ejemplo: $gestores_contenido[2][‘PHPLD’]

Cómo recorrer una matriz

Existen varias herramientas para poder acceder a los elementos de una matriz. Siempre se  mantiene una referencia del elemento de la matriz al que se tiene acceso. Por ello,  para recorrer una matriz sólo tendremos que modificar dicha referencia. En caso de una matriz indexada el recorrido se realizará mediante un bucle. Para ello debemos saber el número de elementos totales de los que dispone la matriz. Para ello nos basamos de una función denominada count (variable),  donde el parámetro variable representa la variable de la que se quiere obtener el número de elementos. Si variable es una matriz, devuelve el número de elementos que tiene. Nos devolverá 1 si sólo tiene un elemento (aunque no sea matriz) y 0 si no tiene ningún valor.

Otra función que nos permite saber el número de elementos es sizeof (matriz) .

Para acceder a los elementos de una matriz asociativa debemos usar la función each() que recupera el par formado por clave y valor y además avanza una posición de puntero. Su sintaxis es each (matriz). Para entender mejor la sintaxis de each, echadle un ‘vistacillo’ a  este post: tomatoma.wordpress.com/manual-de-php/4-matrices-for-each/

La función que realiza el constructor list (variable1,variable2…variableN) es asignar los valores del elemento actual de una matriz a las variables indicadas como parámetro.

NOTA: Me queda pendiente poner los ejemplos. Prometido… 


Bibliografía recomendada:

Introducción al archivo .htaccess

Sí, sí, ya sé que me falta el ejemplo de las matrices o arrays en PHP, y que sólo las he introducido. Permitidme esta licencia…

Valencia, 06/12/2011, G.B.
Voy a cambiar de categoría, más que nada para avanzar un poquito en temas  que considero muy importantes y útiles,  sobre todo si tienes un hosting basado en el servidor Apache. Todos los hosting Linux lo tienen, Por ello .y porque me apetece, cierto es- voy a hablar un poco sobre el archivo de configuración del popular servidor de código libre: el archivo .htacces. Veamos lo que nos cuenta la Wikipedia del mismo:

Un fichero .htaccess (hypertext access), también conocido como archivo de configuración distribuida, es un fichero especial, popularizado por el Servidor HTTP Apache que permite definir diferentes directivas de configuración para cada directorio (con sus respectivos subdirectorios) sin necesidad de editar el archivo de configuración principal de Apache. Fuente: Wikipedia

El archivo .htaccess es un ‘simple’ archivo de texto plano, sin extensión y oculto. Lo importante es que contiene una serie de directivas para el servidor web Apache, en donde está alojado tu proyecto. Así, el servidor web ‘sabrá qué hacer’ ante determinados ‘escenarios’ o circunstancias. Por ejemplo, se usa para restringir el acceso a carpetas, personalizar páginas de errores, redirigir sitios, URL rewriting…

Todos los CMS (gestores de contenido) basados en PHP disponen de este archivo de configuración oculto, habitualmente en el directorio raíz de la instalación de tu CMS, como WordPress, PHP LD o Joomla!, entre muchos otros.

La buena noticia es que no es necesario que lo crees a mano, aunque podrías hacerlo con cualquier editor de texto plano, o de texto plano ‘enriquecido’. Así, con el Notepad.exe de Windows puedes hacerlo, el gedit de Linux o el que más te guste y/o apetezca, Y digo lo de que no es necesario crearlo porque cuando instlas un CMS o gestor de contenidos basado en PHP, el archivo .htaccess ya está listo con su configuración básica para un funcionamiento adecuado de tu sitio bajo WordPress, Joomla!, PHP LD…. Eso sí, si quieres incorporar características especiales y mejoras a tu sitio, deberás editarlo.

Veamos un ejemplo del archivo .htaccess. Es un archivo .htaccess de WordPress, simple, de una versión ‘antigua’, sin ninguna característica adicional, tan sólo con lo necesario para que nos funcione el CMS:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

En este caso, habría que ‘meterle mano’ para optimizarlo.

¿Y cuáles son las posibilidades te ofrece .htaccess?Estas son las más importantes:

  • Restringir el acceso a directorios de tu sitio: muy interesante si tienes un directorio personal, privado, al que no quieres permitir el acceso a personas ni a robots. Prueba a crearlo aquí: http://www.htaccesseditor.com/es.shtml#a_basic
  • Restringir el acceso a IPs o ISPs: hay IPs y dominios que contienen malware. Es importante estar protegido contra ellos. El archivo .htaccess te ayudará a ello.
  • Posibilidad de crear  URLs Amigables (semánticas): muy importante por tema SEO
  • Manejar errores del servidor: qué hacer, a qué página dónde redirigir dependiendo del tipo de error (error 401, error 500, etc., etc.).
  • Crear redirecciones estáticas: la famosa Redirección 301. En este artículo podréis ver buenos ejemlos y el código a agregar a nuestro archivo .htaccess para crear esta útil redirección: Redirección 301 (webexperto.com).
  • Controlar la caché del sitio: acelera la carga de tu sitio y te ‘premian’ tanto los usuarios como los motores de búsqueda
  • Evitar hotlink o llamada remota de tu sitio: no permite que enlacen a imágenes y archivos de configuración, como hojas de estilo (archivos .css), javascripts (archivos .js)… Así evitarás sobrecargar con peticiones ajenas tu sitio, que se aprovechen del ‘tirón’. Muy útil también (yo lo utilizo en un determinado sitio, es decir, evito los hotlinks a ese dominio).
  • Forzar dominio sin las WWW. Es decir, que dará igual que escribas www.aprendiendophp.net que http://aprendiendophp.net, se cargará el mismo sitio gracias a la configuración del .htaccess.
    Un ejemplo con este dominio Aprendiendo PHP:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.aprendiendophp.net)(:80)? [NC]
RewriteRule ^(.*) http://aprendiendophp.net/$1 [R=301,L]
order deny,allow

Para finalizar esta introducción a .htaccess, os dejo algunos enlaces útiles e interesantes,  aunque mi intención es ir profundizando más en el tema. Poco a poco. Aquí van:

Tutorial de .htaccess de ‘En español’
El .htaccess ‘perfecto’ para tu WordPress, según ayudawordpress.com
Editor online de archivos .htaccess (webexperto.com)
Otro editor online de .htaccess (htaccesseditor.com)
.htaccess Files (tutorial de Apache, sitio en inglés)

Matrices en PHP (I)

Ya casi ni me acuerdo de lo que es PHP, tras más de un mes sin ‘tocar’ este blog. Circunstancias, circunstancias, malditas circunstancias…

Valencia, 27/11/2011, G.B.
Hace algún tiempo os comentaba que el próximo post iba a ser sobre las matrices en PHP, un tipo de variables muy importante en programación. Bien, ha llegado el momento. Allá voy.

Una matriz es un tipo de variable que representa a un conjunto de datos a los cuales se puede acceder individualmente a través de su índice u ordenación.  Su nomenclatura oficial es array. Así, los arrays nos permiten asignar más de un valor a una sola variable para luego recuperar cualquiera de sus valores a través de su ordenación o índice. Resaltar que el primer elemento de una matriz o array es el cero (0), a no ser que indiquemos lo contrario.

Bueno, tras esta descripción bastante teórica, vamos a empezar a ilustrar el concepto con un ejemplo. Imaginemos que queremos guardar en variables el número de libros que hemos leído durante el pasado año, si somos buenos lectores, claro:

<?php
$libros_enero = 1; // poco, has leído poco, amiguito
$libros_febrero = 2; // el doble que el mes anterior, no está mal
$libros_marzo = 4; // Otra vez el doble. Muy bien!
$libros_abril = 5; // Aumentamos pero ñlo que no puede ser, no puede ser
$libros_mayo = 6; // Idem del mes anterior
$libros_junio = 7; // Bien, seguimos creciendo en sabiduría…
$libros_julio = 1; // Uy, aquí hemos caído. ‘Back to square one’
?> 

Una vez declaradas todas las variables, podríamos utilizar el siguiente código para recuperar los valores de cada una de ellas. Vamos a utilizar primero las cadenas de bloque que ya hemos visto:

<?php
echo <<< LIBROS

Número de libros que he leído:
– En enero: $libros_enero <br />
– En febrero $libros_febrero <br />
– En marzo $libros_marzo <br />
– etc., etc… <br />
LIBROS;
?> 

El resultado será el siguiente texto:

– En enero: 1
– En febrero: 2
– En Marzo: 4
– etc., etc…

Desde luego, hay más formas de operar y declarar las matrices. Como por ejemplo:

<?php
$libros= array (2, 5, 8, 12); 
?> 

Acabamos de crear una matriz (de nuevo $libros) con cuatro elementos. El primero tiene el valor 2, el segundo 5, el tercero 8 y el cuarto 12.  PHP entenderá que hemos creado la matriz gracias al uso de la palabra reservada array, y que tiene cuatro elementos. Son los números enteros que van entre paréntesis y separados por comas. También podrían ser otro tipo de datos, como cadenas de texto, por ejemplo. Para recuperar los valores de la matriz podríamos volver a utilizar el código anterior, un echo utilizando una cadena en bloque:

Para añadir otro elemento a la matriz que hemos creado, simplemente debemos especificarlo:

<?php
$libros[]= 7;
?>

Y ahora hemos añadido otro elemento a la matriz $libros. Como observamos, para hacerlo simplemente la hemos llamado añadiéndole un corchete de apertura y otro de cierre, indicando seguidamente a través del signo de igualdad el nuevo valor de la matriz, nuestro añadido número 7. El motor de PHP de nuevo entenderá que es una matriz y que acabamos de añadir un nuevo elemento con el valor (numérico en este caso) 7. Vamos a verlo unido, indicando además una nueva instrucción para comprobar los valores de la matriz que hemos creado (print_r):

<?php
$libros= array (2, 5, 8, 12); 
$libros[]= 7;
print_r ($libros);
?>  

El resultado será el siguiente:

Array ([0]==>2 [1]==>5 [2]==>8 [3]==>12 [4]==>2 [4]==>7 )El primer elemento [0] tiene el valor 2, el segundo elemento [1] tiene el valor 5, el tercer elemento [2] tiene el valor 8, el cuarto elemento de la matriz [3] tiene como valor el12 y, por último, el quinto elemento de la matriz que hemos añadido ennuestra segunda línea de código $libros[]= 7;), tiene como valor el 7.

Bueno, hasta aquí la primera parte, muy teórica, lo sé. En la segunda parte veremos unos cuántos más ejemplos y cosas que se me pueden haber escapado…

Ver ejemplo

Algunos enlaces interesantes al respecto:
– Matrices en PHP (PHP.net): http://php.net/manual/es/language.types.array.php
– Matrices en PHP (php-es.com):  http://www.php-es.com/language.types.array.html
– Matrices (Array): http://www.webtaller.com/manual-php/matrices-array.php

Funciones en PHP (I): una introducción

Ante todo pediros disculpas por no haber podido actualizar este blog en casi dos semanas. No tengo excusa, la única es que son demasiadas cosas, demasiados blogs, demasiado trabajo… Intentaré robar tiempo al tiempo para escribir más a menudo en este blog, Aprendiendo PHP. Esa es mi intención. Y ahora, al tajo…

Las funciones son una parte muy importante en cualquier lenguaje de programación y PHP no es una excepción a ello, ni mucho menos! Definimos primero qué es una función: una función es como una pieza independiente del programa, una ‘entidad’ de código que está diseñada, mejor dicho, programada para realizar una determinada acción, como por ejemplo,  devolvernos la fecha del sistema. No es necesario que conozcamos ‘sus tripas’, el código que la conforma. Simplemente debemos saber para qué sirve y cómo llamarla.

En posts anteriores de Aprendiendo PHP ya hemos visto y utilizado algunas de ellas, como la función que he comentado en el párrafo anterior, la que nos devuelve la fecha y la hora de nuestro sistema: la función date(). Una función puede o no devolver un resultado, operando sobre unos valores, a los cuales denominamos argumentos o parámetros. Se construye con una palabra reservada del lenguaje seguida de paréntesis, los cuales pueden ir vacíos o con una enumeración de argumentos o parámetros, separados por comas. Posteriormente esos argumentos pueden sustituirse por los valores que queramos, siempre y cuando sean del mismo tipo de datos. Por cierto, nos queda pendiente el tema sobre el cambio de tipo de datos, lo sé…

PHP dispone de un buen número de funciones propias del lenguaje, pero además podemos crear las nuestras propias. Esto último lo veremos bastante más adelante. Primero, la base. De todas formas, conviene que le eches un vistazo al listado de todas sus funciones en su página oficial de PHP: funciones en PHP.

Comentaros también que una función puede que sólo efectúe una operación, como la obtención de la fecha y la hora que ya hemos visto. El resultado podremos imprimirlo en pantalla -con el constructor del lenguaje echo o print que también hemos utilizado mucho- o guardar el resultado en una variable para utilizarlo más adelante, tal vez en otra función.

Ahora vamos a ver todo esto que hemos explicado con un ejemplo de una función que calcula la raíz cuadrada de un número, el cual se lo pasamos a la función como un parámetro, siempre entre paréntesis. La función nos devolverá un resultado (a la variable la hemos llamado también $resultado) a través de la palabra reservada return. Luego, para mostrar en pantalla el resultado, creamos otra variable denominada $raiz_cuadrada a la cual asignamos la función con un valor de nuestra elección, un argumento. En el ejemplo siguiente vamos a utilizar el número 10 como argumento o parámetro. La función multiplicará 10 * 10 y guardará el valor en la variable $raiz_cuadrada. Después, simplemente mostramos el resultado en pantalla a través del constructor echo, la cual no es necesario que lleve los valores o argumentos entre paréntesis. Importante esta pequeña aclaración: echo y print no son verdaderas funciones. Os aconsejo que leáis la referencia del lenguaje al respecto: echo / print.

El ejemplo:

<?php
// Función para calcular el cuadrado de un número
# También podemos escribir el comentario de una línea con la almohadilla (#)
/* o escribir un comentario en varias líneas, sin problemas,
siempre y cuando las acotemos con estos signos que observas */ 

function calcula_cuadrado_numero ($numero) {
$resultado = $numero * $numero;
return $resultado;
}

echo ‘Vamos a mostrar el resultado de la operación realizada en la función <b>calcula_cuadrado_numero</b> sobre el argumento 10<br /><br />’;

$raiz_cuadrada = calcula_cuadrado_numero(10);
echo “La raíz cuadrada de 10 es: <b>$raiz_cuadrada</b>”; // fíjate que aquí hay comillas dobles porque en la sentencia de echo hay una variable incluida
?> Ejecutar ejemplo


Bien, hasta aquí la introducción. Más adelante volveremos a las funciones en PHP e iremos viendo las más importantes. Poco a poco…

Lecturas recomendadas:
Funciones internas en PHP (manual PHP.net)
Definición de función en programación (desarrolloweb.com)
Funciones en PHP (desarrolloweb.com) 

Concatenación de cadenas en PHP

[Operadores en PHP (V)]

La concatenación de cadenas o unión de strings en PHP se realiza mediante un punto (.): $texto= $texto2.$texto3. Ya hemos visto un ejemplo en el anterior post sobre los operadores de incremento y decremento. Así, el operador de concatenación es un punto entre cada una de las cadenas de texto -o variables que las representen- que queramos unir. La mejor forma de ver la concatenación de cadenas o strings  es con unos cuantos sencillos ejemplos:

<?php
$texto1= ‘Esto es’;
$texto2= ‘un string o cadena de texto’;
$texto3=$texto1.’ ‘.$texto2; // unimos las dos variables con el operador de concatenación: un punto y escribimos un espacio en blanco entre comillas simples para separar las dos frases
echo $texto3;
?>

También podemos incluir el espacio en blanco en la segunda cadena de texto ($texto2):

<?php
$texto1= ‘Esto es’;
$texto2= ‘ un string o cadena de texto’; // el espacio en blanco entre las dos cadenas lo escribimos directamente en el valor de $texto2
$texto1=$texto1.$texto2;
echo $texto1;
?>

Si tenemos una cadena en una variable y la otra no, lo mostraríamos de la siguiente forma:

<?php
$texto1= ‘Esto es una cadena de texto. ‘; // dejo un espacio en blanco después del punto de la frase
$texto2=$texto1 .’Y esta es la cadena de texto sin variable’;
echo $texto2;
?>
Ver ejemplo

En el código del ejemplo he querido utilizar código HTML para devolver el resultado en negrita (tags <b></b>): echo “<b>$texto1</b>”; Si lo hubiéramos escrito entre comillas simples, simplemente hubiéramos obtenido el texto literal $texto3, sin haberse interpretado la variable. Por ello, debemos tener siempre muy en cuenta que si queremos interpretar código dentro de la variable, tenemos que utilizar comillas dobles. Os dejo un recordatorio sobre la diferencia entre las comillas simples y las dobles en PHP:

  • Las variables no se escriben entre comillas
  • Si no vamos a utilizar variables dentro de la expresión, es mejor utilizar comillas simples, ya que devuelven el valor literal, sin interpretar nada
  • En el caso de que queramos recuperar el valor de una variable dentro de un texto, utilizaremos comillas dobles
  • Las comillas dobles indican que el contenido de la expresión debe ser interpretado


Enlaces recomendados:

http://www.mclibre.org/consultar/php/lecciones/php_cadenas1.html
http://www.tuwebdeinformatica.com/Crearwebs/php_mysql/variables_php.html
http://www.ignside.net/man/php/strings.php
http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_PHP/Cadenas

Operadores de incremento y decremento en PHP

[Operadores en PHP (IV)]

Retomando los operadores aritméticos, vamos a ver en este post un tipo de operadores directamente relacionados con ellos: los operadores de incremento y decremento. Y la mejor forma de empezar es con un ejemplo:

<?php $a= $a + 1; $b= $b -1; ?>

Este mismo código expresado con los operadores de incremento y decremento se escribe así:

<?php $a++; // dos signos más (+) seguidos $b–; // dos signos menos (-) seguidos ?>

Lo más significativo es que hemos eliminado el operador de asignación, el símbolo igual (=), y hemos sustituido el nombre de la variable que se suma o resta por un signo más (+) o menos (-), respectivamente. Así, $a++; (++ es el operador de incremento) es lo mismo que $a= $a + 1; y b$–; es lo mismo que b$= $b – 1; (— es el operador de decremento).

Hay una cosa importante que debemos tener en cuenta: los operadores de incremento y decremento pueden anteceder o preceder a la variable, cambiando así el resultado de la operación. Es decir, no dará el mismo resultado la operación $a++ que la operación ++$a: situar el incremento antes de la variable (++$a) da prioridad al incremento (o decremento –, si fuera –$a). Un ejemplo para ver la diferencia:

<?php $a= 2; echo”El valor de la variable <b>a</b> es: 2<br />”; //mostramos el valor de la variable, que es 2 $a++; // incrementamos la variable en uno con el post-incremento, siendo ahora su valor 3. No lo mostramos echo”Ahora será: <b>”.++$a.”</b>”; // ahora la variable valdrá 4 (3 + 1), al haberse realizado primero el post-incremento ?> Ver ejemplo

En el próximo post trataremos la concatenación de cadenas, que ya hemos utilizado en el ejemplo: (echo”Ahora será: <b>”.++$a.”</b>”; ) y los cambios de tipo.

Enlaces útiles al respecto:
PHP.net: Operadores incremento y decremento (Manual oficial)
Operadores de incremento y decremento

Operadores lógicos en PHP

[Operadores en PHP (III)]

Los operadores lógicos, al igual que los aritméticos, devuelven valores booleanos, es decir, TRUE (1) o FALSE (0). Los principales operadores lógicos son los siguientes: AND, OR, XOR y NOT. Se utilizan para evaluar comparaciones entre dos valores. Los signos que los representan son:

  • AND: && Significa y. También se representa por and
  • OR: Se representa por or. Significa o (y/o).También se representa por ||
  • XOR: Se representa por xor. Significa o exclusiva
  • NOT: Se representa por el signo ! Significa no de negación

Un resumen con pequeños ejemplos::

EjemploNombreResultado
$a and $bAND (Y)TRUE si $a y $b son verdaderos
$a or $bOR (O)TRUE si $a o $b son verdaderos
$a xor $bXOR (O exclusiva)TRUE si $a es verdadero o $b es verdadero, pero no ambos a la vez
! $aNOT (NO, negación)TRUE si $a no es verdadero.
$a && $b(AND) YTRUE si tanto $a como $b son verdaderos
$a || $b(OR) OTRUE si $a o $b son verdaderos

– and: Es un operador binario (se aplica a dos varibles) y sólo devuelve TRUE si los dos valores sobre los que actúa o realiza la operación son TRUE (1). Se representa por && o and. Las posibles combinaciones y sus resultados son:

$a$bResultado
TRUETRUETRUE
FALSETRUEFALSE
TRUEFALSEFALSE
FALSEFALSEFALSE

– or: El operador not, a diferencia de and, sólo da como resultado FLASE (0) si las dos variables sobre las que actúa son FALSE. En el resto de casos, nos dará como resultado TRUE (1). Las posibles combinaciones son:

$a$bResultado
FALSEFALSEFALSE
TRUEFALSETRUE
FALSETRUETRUE
TRUETRUETRUE

– xor (u operador exclusivo): Sólo devuelve TRUE cuando los dos valores son distintos:

$a$bResultado
TRUETRUEFALSE
FALSETRUETRUE
TRUEFALSETRUE
FALSEFALSEFALSE

not: Este operador, a diferencia del resto,  es un operador unario. Esto significa que se aplica a una sola variable.
Ejemplo: ! &a: El valor es TRUE si la variable a no es cierta.

Para poder ver ‘en acción’ estos operadores, nos esperaremos a ver las estructuras de control. Ya queda menos…

Más información sobre los operadores en PHP:
http://www.ignside.net/man/php/operadores.php (ignside.net)
– http://php.net/manual/es/language.operators.logical.php (Manual PHP)
http://www.webestilo.com/php/php03c.phtml (Webestilo.com)

Operadores de comparación en PHP

[Operadores en PHP (II)]

Tal y como comentaba en el anterior post, voy a continuar con los operadores en PHP. Vamos a ello:

Operadores de comparación
Los operadores de comparación se utilizan para comparar dos valores entre sí y de esta poder tomar una decisión por medio de las instrucciones de control que veremos más adelante.

El resultado de un operador de comparación es un valor denominado booleano (boolean), dependiendo si la comparación se satisface o no. TRUE si es verdadero y FALSE si es falso. Estos dos valores también pueden representarse por un cero (0) en el caso de FALSE y un 1 si la comparación da como resultado TRUE. Así, el cero siempre representa que la comparación no se cumple, es decir, que el resultado de la comparación es FALSE (falso). Resumiendo:
cero (0) = FALSE
uno (1)= TRUE (aunque creo que también podría representarse por cualquier otro número distinto de cero).

Para realizar ls comparaciones entre dos valores disponemos en PHP de los siguientes  valores:

== igual a
=== idéntico a
!= distinto de
<> distinto de (otra forma de representarlo)
!== no idéntico a
< mayor que
> menor que
<= menor o igual a
>= mayor o igual a

OperadorDescricpción
$a == $bTRUE si $a es igual a $b
$a === $bTRUE si $a es idéntico a $b
$a != $b (también <>)TRUE si $a no es igual a $b
$a <> $bTRUE si $a no es igual a $b (otra forma de representarlo)
$a !== $b (también <>)TRUE si $a no es idéntico a $b
$a < $bTRUE si $a es menor que $b
$a > $bTRUE si $a es mayor que $b
$a <= $bTRUE si $a es menor o igual igual que $b
$a >= $bTRUE si $a es mayor o igual que $b

Veamos un ejemplo de los principales operados de comparación en PHP: 

<?php
$a = 1;
$b = 2;
$c = 3;
echo $a == $b,” :Comparación 1 <br />”;  //devuelve FALSE (0). Añadimos un pequeño código en HTML entre comillas dobles
echo $a != $b,” :Comparación 2 <br />”; //devuelve TRUE (1)
echo $a < $b,” :Comparación 3 <br />“; //devuelve TRUE (1)
echo $a > $b,” :Comparación 4 <br />“;//devuelve FALSE (0)
echo $a >= $c,” :Comparación 5 <br />“;//devuelve FALSE (0)
echo $b <= $c,” :Comparación 6 <br />“; //devuelve TRUE (1)
?> Ver ejemplo

Si ejecutamos el ejemplo, la página HTML nos devolverá un 1 cada vez que no se cumple la comparación (FALSE) y un cero (0) o nada si se cumple (TRUE). Así, tendremos los siguientes valores como resultado de las comparaciones:

0 (FALSE) (no se mostrará nada): Comparación 1
1 (TRUE): Comparación 2
1 (TRUE): Comparación 3
0 (FALSE) (no se mostrará nada): Comparación 4
0 (FALSE) (no se mostrará nada): Comparación 5
1 (TRUE): Comparación 6

Tenéis más información al respecto en el siguiente enlace del manual de PHP: http://php.net/manual/es/language.operators.comparison.php. En el mismo se habla de la comparación entre distintos tipos de datos. Nosotros lo veremos con ejemplos más adelante.

En el próximo post estudiaremos los operadores de incremento y los lógicos, entre otras cosas.

Operadores en PHP (I): de asignación y aritméticos

Hemos visto las variables en PHP y sus tipos de datos, aunque todavía nos faltan cosas, una de ellas las matrices o arrays. Eso lo veremos más adelante. Ahora creo que es ya el momento de empezar a ‘jugar’ un poco con PHP. Desde luego que las variables son muy importantes, pero si no podemos operar con ellas, nos quedamos un poco en el ‘limbo’. Así que, durante los dos o tres próximos posts hablaremos de los operadores en PHP, ¿OK? Vamos allá.

Los operadores en PHP son los símbolos que nos permiten realizar operaciones tales como suma, resta, división, multiplicación, concatenación o unión de cadenas (strings), etc. Realmente son muy necesarios si queremos conseguir algo más de lo que hemos hecho hasta ahora: sustituir variables por un valor. Aunque en lo que hemos hecho hasta ahora también han tenido que ver los operadores, en concreto el operador de asignación, representado por el símbolo matemático igual (=). Lo primero de todo será una pequeña clasificación de los principales operadores en PHP:

  • Operadores de asignación
  • Operadores aritméticos
  • Operadores de comparación
  • Operadores lógicos
  • Operadores de incremento
  • Concatenación (unión) de cadenas 

Operadores de asignación
Es el operador representado por el símbolo igual (=)- Se encarga de asignar el valor que aparece a la derecha del signo al operando de la izquierda, es decir, lo que está a la derecha del signo igual se asigna a lo que está a la izquierda. Veamos un ejemplo:

<?php $saludo = ‘Buenos días’; ?>
A la variable $saludo se le ha asignado el valor Buenos días. También podríamos haberle asignado otra variable ya existente. Para ello recordar que es mejor utilizar comillas dobles.

Operadores aritméticos
Estos son los típicos operadores de suma, resta, multiplicación, división… Los principales o los que más vamos a usar se representan de la siguiente forma:

Suma = +
$n = 2 + 3

Resta = –
$n = 4 – 3

Multiplicación = *
$n = 72 * 3

División = /
$n = 18 / 2 

Cuando combinamos estos operadores con el de asignación (=), podremos realizar sencillas operaciones matemáticas. Veámoslo:

<?php
$total;

$numero = 1;
$numero2 = 3;
$total =  $numero + $numero2;
echo “El resultado de $numero más $numero2 es: <b>$total</b>”; // Aquí imprimimos el resultado de la suma de las dos variables $numero y $numero2

?>
Ver ejemplo 

El resultado, obviamente, será 4. Aquí vemos que no hemos utilizado comillas simples ni dobles tras la asignación del valor, ya que se trata de enteros (integers). Aunque PHP no declara explícitamente el tipo de datos, sí que lo hace implícitamente, reconociendo, por ejemplo,  si son enteros, decimales o cadenas de texto (strings). Más adelante hablaremos de la conversión de tipos de datos. Al hilo de esto último, fijaos que en donde he esccrito la palabra más hubiera podido escribir también el signo +, ya que el preprocesador PHP lo hubiera tratado también como un string (cadena de texto), al no haber ningún signo de asignación en la última línea del código. Simplemente lo que hace es imprimir la operación de la línea anterior $total =  $numero + $numero2; 

También hay que tener en cuenta el orden de las operaciones, ya que no es lo mismo 2 + 3 *8 que (2+3) *8 ó 2 + (3 * 8). Los paréntesis nos indican qué operación deberemos realizar primero. Así, los operandos que van entre paréntesis tienen que computarse o calcularse primero.

Tenemos a nuestra disposición unos operadores que combinan las asignaciones (=) con los operadores aritméticos. Son los llamados operadores extendidos de asignación. Son los siguientes:

-=
+= 
*=
/=

Veamos como funcionan con algunos ejemplos:

$a=2
$b=5
$a+= $b // Esto sería lo mismo que $a = $a + $b

$c=2
$d=5
$d*= $c // Esto sería lo mismo que $d = $d * $c

Continuaré…

MIentras tanto, para saber más sobre los operadores en PHP, os recomiendo que visitéis este enlace: http://www.ignside.net/man/php/operadores.php Por cierto, en ignside.net encontraréis varias herramientas interesantes, así como un tutorial sobre PHP.

Variables en PHP (II): más sobre las variables en PHP y sus tipos de datos

Casi de vuelta de las vacaciones

En el post anterior hemos visto una introducción a las variables en PHP. Ahora vamos a profundizar sólo un poco más y hablaremos de otra clasificación de sus tipos de datos, aunque dejaremos alguno de ellos por su importancia (como las matrices) para próximos posts, en dedicación completa.

Dividimos las variables en cuatro grupos: alfanuméricas, numéricas, matrices y objetos. Pero a efectos prácticos, podemos clasificar las variables en estos cinco tipos, los más usuales y, por lo tanto, con los que más vamos a trabajar en cuanto nos adentremos en las operaciones con variables:

  • Booleanos (booleans)
  • Enteros (integers)
  • Decimales (decimals)
  • Cadenas ( strings)
  • Matrices (arrays)

Booleanos
Una variable de tipo booleano puede tener dos valores posibles: verdadero o falso. Se representan en inglés: TRUE (verdadero) y FALSE (falso). Su correspondencia numérica es la siguiente: un cero para el valor FALSE y cualquier otro número distinto de cero (incluidos los números negativos) equivaldrán a TRUE. Por convención, se suele utilizar el 1 como TRUE aunque, repito, puede ser cualquier número.

Usualmente se usa algún tipo de operador que devuelve un valor booleano, y luego éste es pasado a una estructura de control. Ambas cosas las veremos más adelante, pero ahora mismo, para poder seguir explicando el tipo de dato booleano, es mejor que introduzcamos los operadores en PHP, aunque ya los hallamos utilizado en ejemplos anteriores.

Un operador es algo que toma uno más valores (o expresiones, en jerga de programación) y produce otro valor (de modo que la construcción en si misma se convierte en una expresión)“.
Fuente:
Manual oficial de PHP.net.

Existen varios tipos de operadores, pero el básico es el de asignación, y se representa por mediación de un símbolo igual “=“.  Aunque en primera instancia podamos pensar  que es lo mismo que “igual a”, en realidad lo que nos está indicando es que el operando de la parte izquierda toma su valor de el operando de la parte derecha, el que está tras el símbolo igual. A esta ‘representación’ la denominamos ‘expresión de asignación’, al asignar a una variable un tipo de dato, como ya hemos visto en varios ejemplos anteriores.

El valor de una expresión de asignación es el valor asignado. Es decir, el valor de “$numero = 118” es de 118.

Los enteros y decimales también los hemos tratado ya en el post anterior. Aunque podríamos hablar más sobre ellos (tal vez vuelva sobre ellos más adelante), vamos a pasar directamente a un tipo de variable muy utilizado e importante en PHP, las cadenas de texto o strings (en inglés):

Cadenas de texto (strings):
La mayor parte de la información que se ‘maneja’ e una página web es texto, cadenas de texto o strings. Una cadena de texto es simplemente una secuencia de caracteres, como el párafo que acabas de leer. Con el lenguaje PHP podemos definirlas de 3 formas distintas:

  • Con comillas simples
  • Con comillas dobles
  • En bloque

Como ya hemos tratado las dos primeras formas, vamos a ver ahora las Cadenas de texto en bloque. Las utilizamos para cadenas de gran longitud, es decir, textos largos. Veamos cómo con la denominada sintáxis heredoc:

<?php echo
<<<BLOQUE
<b>¡Hola mundo!</b>

Esto es una cadena en bloque.
Se mostrarán todas las líneas de texto
y no tengo que utilizar caractéres de escape.
Lo único que pasa es que todo este texto
se visualizará sin saltos de línea predeterminados.
Luego veremos un ejemplo
utilizando saltos de línea en una cadena en bloque.
BLOQUE;
?>
Ver ejemplo

Como habréis podido observar, no he tenido que definir la variable bloque previamente y he utilizado la función echo para imprimir el resultado en pantalla. Pero para utilizar las cadenas de texto en bloque o sintáxis heredoc, debemos seguir algunas reglas:

– Escribir la variable en mayúscula precedida por tres signos menor que (<<<)
– Finalizar la declaración de la variable con el nombre también en mayúsculas seguido de un punto y coma (;)

Tenéis mucha más información al respecto en el enlace anterior sobre la sintáxis heredoc. Si lo pensáis bien, con esta sintáxis podemos incluir bastante código html e incluso cósdigo Javascript (si no me equivoco), dentro de la variable. Así, dentro del contenido de nuestras variables en bloque, podremos incluir código HTML, como retornos de carro o saltos de línea. Y esto lo digo porque aunque nosotros hayamos escrito el texto con saltos de línea, una vez procesados y mostrado el valor en el navegador web, dichos saltos de línea no se mostrarán. Para ello deberemos utilizar los llamados caracteres de escape o código html, como el salto de línea <br />

Para las cadenas de texto ‘normales’, utilizaremos los denominados carácteres de escape: 

– Barra invertida: \
– Comilla simple: ‘
– Comillas dobles: “
– Retorno de carro o salto de línea: n
– Tabuladores: t
– Signo dólar: $

Ejemplo:

<?php $texto2= “Esto es un texto con la palabra “hola” en comillas dobles”;
echo $texto2;
?>
<?php $texto5= “Esto es un texto que cuesta 1 $”;
echo $texto5;
?>

Ver ejemplo

Para saber más al respecto, os recomiendo la lectura de esta página de Wikilibros: Programación en PHP. Cadenas. A mí me ha solventado una duda que tenía al respecto.

Cuando una cadena es especificada en comillas dobles o en el interior de un bloque heredoc, las variables son interpretadas en su interior. Vamos a introducir la variable $nombre dentro de nuestra variable de cadena en bloque:

<?php
$nombre = ‘Guillermo’;
echo <<<BLOQUE
<b>¡Hola mundo!</b>
Esto es una cadena en bloque-
Se mostrarán todas las líneas de texto
y no tengo que utilizar caractéres de escape.
Lo único que pasa
es que todo este texto
se visualizará sin saltos de línea predeterminados.
Luego veremos un ejemplo
utilizando saltos de línea
en una cadena en bloque.
<br /> <br />
Por cierto, mi nombre es:<br />
<b>$nombre</b>.<br />
Aquí he utilizado otra variable<br />
dentro de la variable cadena de texto<br />
Además, he utilizado saltos de línea en HTML.
BLOQUE;
?>

Ver ejemplo

Como habréis observado, no he necesitado poner comillas dobles a la variable $nombre para llamarla o invocarla, ya que he utilizado la sintáxis heredoc. Si hubiera sido una cadena de texto normal, tendría que haber utilizado comillas dobles para que la variable se interpretara- Esto es importante tenerlo muy en cuenta. Veamos un ejemplo:

<?php   
$ciudad = “Valencia”; 
$presentacion = “Vivo en $ciudad”; 
echo $presentacion; //imprime en pantalla el contenido de la variable $presentacion: “Vivo en Valencia” 
 //sin embargo 
$presentacion = ‘Vivo en $ciudad’; 
echo $presentacion; //imprime en pantalla el texto $presentacion, literalmente: “Vivo en $presentacion” 
?> Ver ejemplo

Por último, en cuanto a las matrices o arrays, creo que es mejor que las tratemos en un post independiente, debido a su importancia. En breve…

Variables en PHP (I)

Como os comentaba en el anterior post, sobre la sintáxis básica de PHP, en este vamos a ver una introducción a las variables en PHP y sus tipos de datos. Pero si queremos empezar de cero, deberenos definir primero el concepto de variable en el mundo de la programación y la programación web. Empecemos pues: una variable es la representación gráfica de un puntero de memoria, un espacio que reservamos de la memoria RAM de nuestro ordenador o servidor para ‘invocarlo’ cuando lo necesitemos, igualando su valor a lo que nos interese, es decir, a un determinado valor con un determinado tipo de datos. Hablamos pues de la declaración de variables y de tipos de datos de variables. Así pues, las variables tienen un  nombre, un valor y un tipo de datos.

¿Y cómo se representan? Las variables en PHP se escriben anteponiendo el símbolo dólar ($) al nombre de la variable que vamos a definir. Pueden llevar un guión bajo, letras y números, pero nunca empezar por un número, ni tener un espacio en blanco. La asignación del valor de la variable va precedida por el símbolo igual (=). La declaración de la variable debe finalizar con un punto y coma (;), como toda línea de instrucción en PHP Algunos ejemplos:

$_texto=”Hola”;
$texto=’Otra cadena de texto’;
$_Texto=’Es mejor utilizar comillas simples’;
$Texto=”Las comillas dobles implican un procesamiento”;
$Texto2=’Todo eso lo veremos más adelante’;

PHP distingue entre mayúsculas y minúsculas, es un lenguaje ‘case-sensitive. Así, estas dos variables son distintas, a pesar de que su valor sea el mismo y su tipo de datos también:
$_texto=’Hola’;
$_Texto=”Hola”;

Veamos una variable en su ‘salsa’:

La hora es: <?php $_texto=’Esto es una variable en PHP’;
// Mostramos la variable en el navegador
echo  $_texto;
?>

Ejecutar ejemplo

El valor de la variable $_texto es la cadena de texto ‘Esto es una variable en PHP’, que también podría escribirse así: “Esto es una variable en PHP”.

PHP es un lenguaje de script muy flexible, pero no declara explícitamente el tipo de datos de las variables. Eso no quiere decir que dichos tipos no existan ni que tampoco podamos comprobarlos. En el ejemplo anterior, y adelantando acontecimientos, la variable $_texto tiene como tipo de datos una cadena de texto (“Esto es una variable en PHP”). PHP permite operar con las variables, pudiendo cambiar ‘dinámicamente’ el tipo de datos al realizar operaciones entre ellas.

Tipos de varibles en PHP
Existen 4 grupos de tipos de datos para las variables en PHP:

  • Variables numéricas: Almacenan valores de cifras, números enteros y reales. Su valor no debe ir entre comillas..
    $entero=99; // números enteros
    $pi=3.14159; // números reales con o sin decimal
    $nacimiento = 1967
  • Variables alfanuméricas (cadenas de texto): almacenan cadenas compuestas por textos y/o números. Su valor se expresa entre comillas simples o dobles.
    $cadenaTexto=”Un texto cualquiera”;
    $cadenaTexto2=”1967″;
    $cadenaTexto=”Nací en 1967, ya soy viejales”;
  • Matrices (o tablas) (arrays): almacenan series numéricas y(o alfanuméricas. El primer elemento elemento disponible en una matriz es el cero [0]. Dependiendo del tipo de datos, su valor se expreará entre comillas o no.
    $enero[0]=”Ir al cine”;
    $febrero[1]=”Aprender PHP”;
    $marzo[2]=”Ya son fallas”;
    $abril[3]=”Llega la primavera”;
    $año[2]=2011;
  • Objetos (conjuntos de variables y funciones asociadas): Los veremos más adelante…

Dependiendo de la información que contenga, una variable puede ser considerada de uno u otro tipo. A diferencia de otros lenguajes, PHP posee una gran flexibilidad a la hora de operar con variables. En efecto, cuando definimos una variable asignándole un valor, el ordenador le atribuye un tipo. Si por ejemplo definimos una variable entre comillas, la variable será considerada de tipo cadena:

<?php $numero=”365″; ?>

A pesar de ser un valor numérico,la variable  $numero se interpretará como una cadena de texto al ir entre comillas. Pero si realizamos operaciones entre variables, el tipo de dato cambiará para adaptarse al contexto. Si lo hubiéramos escrito así <?php $numero=365; ?> su tipo de datos sería claramente numérico, en concreto, su valor es un entero  (sin decimales), el 365.

Introducción a las funciones en PHP
Comentaros también que es importante que introduzcamos el concepto de funciones en la programación. PHP dispone de una considerable cantidad de las mismas. Veamos un ejemplo:

<?php $hora=date (‘H:i:s’); ?>
Esta función, una vez ‘invicada a través de otra función, como es ‘echo’, nos mostrará la hora con unos determinados parámetros en este caso que son hora (H), minutos (i) y segundos (s). Así, si quisiéramos mostrar una página con la hora en ese formato, escribiríamos el siguiente script en PHP:

<?php $hora=date (‘H:i:s’);
echo $hora;
?>

Ejecutar ejemplo

En el próximo post, ampliaremos el contenido de las variables y, sobre todo, nos introduciremos en las funciones en PHP.


Enlaces recomendados:

Variables en php (manual oficial en inglés):
Artículo en desarrolloweb.com sobre variables en php