Reboot de Aprendiendo PHP

php

Valencia, 11/03/2022, G.B.
Hoy me he dado cuenta de pura casualidad, al echar un vistacillo a las estadísticas web, que estáis visitando alguno de los artículos que rescaté de mi antigua web aprendiendophp.net, allá por el 2012, si no me equivoco…. Y también he observado que casi todos los ejemplos que preparé en su día no son accesibles; hace años dejé el dominio…

Por todo ello, y aunque ahora mismo esté centrado en otros temas (CSS, entre otros), voy a ir corrigiendo y arreglando todos los ‘desajustes‘. Eso sí, poquito a poco, sin prisa y sin agobios. Porque me he dado cuenta que intentarlo todo a la vez equivale a conseguir prácticamente nada…

La parte interesante de todo esto es que seguramente me servirá también para retomar el aprendizaje del lenguaje PHP, que ahora mismo tengo casi olvidado. Avisaré.

Bueno, solo era eso. Pero creo que debo dejar algo interesante sobre PHP, si has llegado hasta aquí para tan solo leer mis intenciones… Os dejo un enlace a un post sobre algunos trucos PHP, aunque sea del 2016. Aquí va: https://www.genbeta.com/desarrollo/13-trucos-y-consejos-de-php-que-pueden-hacerte-la-vida-profesional-mas-facil

Bonus Track: PHP Websites & Books</small<

Añadir buscador en la barra de menú WordPress

Articulo que nos explica cómo agregar el buscador en la barra de menú de WordPress cambiando el archivo functions.php de nuestro tema (preferiblemente del tema hijo, para que se mantengan los cambios al actualizar el tema o theme principal): “Para añadir el buscador en la barra de menú WordPress solo necesitas añadir a tu archivo una pequeña función“:

add_filter('wp_nav_menu_items','buscador_en_menu', 10, 2);
function buscador_en_menu($items, $args) {
$searchform = get_search_form( false );
$items .= '<li>' . $searchform . '</li>';
return $items;
}

https://laprogramaciondehoy.com/anadir-buscador-en-la-barra-de-menu-wordpress/

Crear archivo phpinfo (y ver opciones de los módulos del servidor Apache)

servidor apacheCuando es necesario en un servidor saber datos detallados sobre PHP la mejor opción es utilizar la función phpInfo.”… Creamos el archivo y lo subimos a la raiz de nuestro servidor para luego ejecutarlo en el navegador y comprobar todas las opciones de PHP  y de los módulos del servor apache activos:

<?php
phpinfo();
phpinfo(INFO_MODULES);
?>

https://clouding.io/hc/es/articles/360011438719-Crear-archivo-phpInfo

Cómo aumentar el límite de memoria de WordPress

Cómo-aumentar-el-límite-de-memoria-en-WordPress-ayuda-hostingArtículo del blog ayudahosting.online de cómo aumentar la memoria RAM de WordPress. De las 3 formas, a mí me ha funcionado la de crear el archivo php.ini y subirlo al directorio raíz de mi sitio en WordPress y también en la carpeta wp-admin. “Es en el archivo php.ini donde se incluyen las configuraciones de php para el servidor. En el caso de servidores cPanel como el de algunos proveedores de hosting se puede crear un archivo php.ini en el directorio public_html e incluir allí las configuraciones necesarias para un ajuste más personalizado. Incluiremos la siguiente linea para aumentar el limite de memoria de php: memory_limit = 256M ;
https://ayudahosting.online/aumentar-limite-memoria-wordpress/

Instrucciones iterativas en PHP (II): bucles Foreach (I)

Estructuras de control de flujo en PHP

 

Valencia, 25/10/2012, G.B.
La siguiente instrucción iterativa en PHP que vamos a ver es el bucle foreach. Foreach nos permite iterar o ‘enunciar’ cada elemento de una matriz, vectorarray. En otras palabras, nos permite ‘recorrer’ todos los datos de una matriz, array o vector.

 

La diferencia entre el bucle For y el bucle Foreach es que cuando se utiliza el bucle foreach se ejecuta todo lo que está escrito en la instrucción iterativa, sin tener en cuenta ningún contador. En cambio, al utilizar el bucle for, se realizan las instrucciones un determinado número de veces, dependiendo del contador: “hazlo X veces”.  Así, en las instrucciones foreach no se pueden producir errores, siempre y cuando estén bien escritas, claro.

El bucle foreach tiene dos usos:
1) Mostrar todos los datos de un array
2) Mostrar un valor concreto del array

La sintáxis de foreach del primer uso (1), para recorrer y mostrar todos los datos de la matriz o  array es:

identificador de la matriz o vector; expresión con el operador ‘as’; variable que identifica cada uno de los elementos de la matriz; sentencias o instrucciones a realizar:

O lo que es lo mismo: 

foreach (array as $valor) {
instrucción;
}

Veámoslo con un sencillo ejemplo que recorre todos los valores de la matriz o array y los imprime con la instrucción echo, añadiendo un salto de línea en HTML (<br />) tras cada uno de los elementos recorridos y mostrados de la matriz $colores:

<?php
$colores = array("blanco", "azul", "verde manzana", "salmón");
foreach ($colores as $pintura) {
echo "Color: <b>$pintura</b><br />";
}
?>

Ejecutar ejemplo

El segundo uso de foreach (2) es para mostrar un determinado valor de la matriz. Pero será en el próximo post, y con más ejemplos…

 

Lecturas recomendadas:
foreach (PHP Manual)
Foreach PHP

Instrucciones iterativas en PHP: bucles For

php

Estructuras de control de flujo en PHP

Valencia, 02/10/2012
El lenguaje PHP dispone también de un tipo instrucciones llamadas iterativas o de repetición ‘heredadas’  del lenguaje C. Son los conocidos ‘bucles‘, instrucciones que realizan una determinada acción un número determinado de veces que se especifica a través de un contador. Es como si diéramos cuerda a una instrucción para que se realice hasta que finalice el contador que hemos especificado, el ‘paso’, por llamarlo de algún modo. Se llaman bucles porque se repiten hasta que la condición deja de cumplirse, o lo que es lo mismo, se evalúa como falsa (FALSE).

Las instrucciones iterativas o bucles en PHP son las siguientes:

    • for
    • foreach
    • while
    • do… while

Veamos la primera de ellas, las  instrucciones o bucles for. Su sintaxis es la siguiente:

for ([Inicialización de la variable] ; [Condición] ; [Incremento o decremento de la variable])
{
[Instrucciones];
}

O como lo explica el portal oficial PHP.net:

for (expr1; expr2; expr3) sentencia

Veamos algunos ejemplos prácticos para entenderlo mejor:

<?php
/* ejemplo sencillo de bucle for en PHP */
for ($n = 1; $n <= 10; $n++)
{ 
echo "$n <br />";
//añadimos un salto de línea en HTML (<br />)
}
?>

 Lo muestro también con otro formato de visualización: 

<?php
/* ejemplo sencillo de bucle for en PHP */
for ($n = 1; $n <= 10; $n++) {
    echo “$n <br />”; //añadimos un salto de línea en HTML (<br />)
}
?>
Ejecutar ejemplo

EXPLICACIÓN del ejemplo: En primer lugar hemos inicializado la variable $n y le hemos dado el valor 1.Esto sólo se realizará la primera vez.  En segundo lugar, hemos establecido la condición, que la variable $n sea menor de 15 para que se realice la instrucción o sentencia que veremos al final . En  tercer lugar, hemos establecido el ‘paso’ -incremento o decremento- de la variable cada vez que ‘dé una vuelta’, es decir, cada vez que acabe y vuelva a la condición para evaluarla ($n <= 10;). En nuestro ejemplo, ha sido con un incremento de +1 a través del operador de incremento ($n++). Por último, y entre brackets, hemos especificado cuál es la instrucción que debe realizar e bucle for (echo $n;) mientras se cumpla la condición -sea verdadera o TRUE) ($n <= 10;) y con qué incremento ($n++),  $n+1 en nuestro caso. La instrucción for finaliza en cuanto la condición se evalúa como falsa (FALSE): en nuestro primer  ejemplo, en cuanto la variable $n alcanza el valor de 10.


NOTA:
Os debo unos cuantos ejemplos más.  En breve, prometido…

Lecturas recomendadas:
Definición de iteración
Estructura for
Estructuras control PHP

Estructuras de control en PHP V: instrucción switch

php

[Control de flujo o estructuras de control en PHP V] Instrucciones Switch

Valencia, 27/09/2012, G.B.
Tras haber conocido ya las estructuras condicionales en PHP con if, if/else y if/elseif/else, pasamos ya a la última: la estructura switchYa sabemos que las sentencias o estructuras condicionales se utilizan para realizar distintas acciones basadas en diferentes condiciones. Switch actúa de la misma manera que lo hace la estructura if/elseif/else, pero permite simplificar el código cuando las condiciones o posibilidades son muchas.

La expresión o variable que va después de la palabra reservada switch se evalúa utilizando la palabra case (caso en inglés) seguida de dos puntos. Si hay un equivalente, una coincidencia, se ejecutará la sentencia tras ‘case‘. En caso contrario, se sale de la instrucción utilizando la palabra reservada break y se pasa al siguiente ‘caso’ o case, en donde se evaluará la siguiente sentencia,  y así hasta llegar a un case en el que se cumpla.  En el caso de que no se cumple ninguna de las equivalencias presentadas tras cada uno de los ‘case’, es decir, en el caso de que no haya ninguna equivalencia, se puede utilizar una instrucción por defecto representada por la palabra default, también  seguida de dos puntos. La estructura condicional switch está ‘encerrada’ entre brackets { }.

Pero mejor veamos una representación de la sintaxis de switch:

switch ($nombreVariable) {
case valor1:
      (sentencia1);
      break; // salida que se utiliza opcionalmente
case valor2:
      (sentencia2);
      break;
case valor3:
      (sentencia3);
      break;
case valor4:
      (sentencia4);
      break;
case valor5:
      (sentencia5);
      break;
defaulf:
      (sentencia o instrucción predeterminada); // esta se ejecutará en caso de que ninguna de las equivalencias anteriores se cumpla
}

Resumiéndolo:

switch (variable) {
   case: sentencia1;
   break; 
case: sentencia2;
   break; 
default: sentencia predeterminada;

Para entenderlo mejor, vamos a adaptar el ejemplo del post anterior a la estructura switch, aumentando con esa instrucción las posibilidades:

<?php
$hora = date ('H');
switch ($hora) {
   case 7:
   echo 'Es hora de levantarse, campeón';
   break; // salida que se utiliza opcionalmente
case 8:
   echo '¿Estás despierto ya?';
   break;
case 10:
   echo '¿Un cafetito?';
   break;
case 13:
   echo 'Falta menos para comer. ¿Tienes hambre ya?';
   break;
case 14:
   echo 'A comer!';
   break;
case 16:
   echo '¿Te apetece otro café?';
   break;
case 19:
   echo 'Descansa un poco: apaga el ordenador.';
   break;
case 20:
   echo 'Queda menos para cenar. ¿Tienes hambre?';
   break;
case 23:
   echo 'El día ya casi ha pasado. Debes estar cansado';
   break;
case 24:
   echo '¿Por qué no te vas a dormir?';
   break;
default:
   echo '<h2>Bienvenido a Aprendiendo PHP</h2>'; /* Esta es la frase por defecto que aparecerá en formato Título 2 en el caso de que no se cumpla ninguna de las equivalencias presentadas */
   break; 
}
?>

Ejecutar ejemplo

Ya sólo nos queda  ver -respecto a las estructuras condicionales en PHP- otro tipo de operador condicional que equivale a la estructura if/else denominado operador ternario. En el próximo post…


Lecturas recomendadas:
Switch
PHP Instrucción Switch
PHP Switch Statement

Estructuras condicionales en PHP II: instrucciones If sencillas

php
 Abril 2016: Post recuperado de Aprendiendo PHP (web ya inactiva)
[Control de flujo o estructuras de control en PHP II] Instrucciones IF
Valencia, 22/09/2012, G.B.
Como os comentaba en el anterior post, la primera parte de Control de flujo o estructuras de control en PHP, vamos a explicar ya la primera clase de ellas, las estructuras o instrucciones condicionales en PHP. Como bien indica su nombre, las instrucciones condicionales permiten determinar las acciones a realizar en función de una condición o condiciones.  Son las siguientes:
La más sencilla de ellas es la instrucción If  (‘si’ condicional en inglés) y se representa de las siguientes formas:
if (condición)
acción;

o lo que es lo mismo:
if (expresión)    {     (sentencias);    }

Donde vemos condición podemos llamarlo expresión y donde leemos acción, podemos llamarlo sentencias, ¿de acuerdo? 


Es muy recomendable utilizar los brackets {  } para separar el flujo de acciones, como ya veremos. También podemos dejar los brackets  en la misma línea,  o el primero de ellos después de la expresión o condición encerrada entre paréntesis, quedando de cualquiera de las siguientes formas:
if (expresión){ (sentencias); }
if (expresión) {    (sentencias);
}
if (expresión)
{    (sentencias);
}

El motor de PHP evalúa la condición o expresión, que siempre debe ir entre paréntesis, y si el resultado de la evaluación es verdadero (TRUE), se realizará la acción de la siguiente línea de código. En caso contrario, es decir, si la condición no es verdadera (devuelve FALSE), no se realizará ninguna acción.

Un ejemplo sencillo, del que ya hablamos en el anterior post, sería almacenar la hora en una variable para el valor que nos da con uno concreto, utilizando los operadores de PHP que ya conocemos. Vamos a ello:

<?php
$hora = date ("H");
if ($hora >= ('7'))
{
    echo 'Es hora de levantarte, campeón';
}
?>

Ejecutar ejemplo

Este fragmento de código evalúa la fecha del sistema y si se ejecuta a partir de las 07:00 horas de la mañana, imprimirá en pantalla, en la página web en donde está la instrucción condicional, el mensaje de texto Es hora de levantarse, campeón!. En caso contrario, simplemente no mostrará nada. 

Como vemos, y reiterando, el operador básico if evalúa una expresión encerrada entre paréntesis ( ) y si la condición se cumple, es decir, es verdadera, se ejecuta el bloque encerrado entre brackets { } que sigue a la expresión condicional, las sentencias. Otro ejemplo:

<?php
if ($numero1 === $numero2)
   { print "el $numero1 es idéntico al $numero2" ; }
?>
En esta condicional simple, se evalúa si la variable $nunero1 es idéntica (=== ) a la variable $numero2. Si es así, se imprimirá en pantalla la frase el $numero1 es idéntico al $numero2.

Si, ya sé, esto todavía no es muy útil.  En el siguiente post veremos cómo podemos sacarle mucho más partido a las sentencias condicionales con if /else, on if /elseif y con switch.  Esperad sólo un poquito, que ya he vuelto a retomar este blog…

Algunas lecturas recomendadas: Constructor if

Control de flujo o estructuras de control en PHP (I): una introducción

Introducción  a las sentencias If

 

Valencia, 23/06/2012, G.B.
Ya sabemos un poco más sobre PHP, pero hay algo muy importante que hemos dejado de lado hasta ahora: me refiero a las estructuras de control de flujo o estructuras condicionales. ¿Y qué son?

Todo lenguaje de programación dispone de este tipo de estructuras que nos permiten ‘ir hacia un sitio u otro’, conseguir un resultado u otro dependiendo del contexto, de la interacción con el usuario o con una variable. Así, podemos decidir qué hacer o qué respuesta dar dependiendo de las posibles condiciones, es un flujo de causa-efecto, por decirlo de algún modo: causa 1: efecto uno,  consecuencia o respuesta uno; causa 2: efecto, consecuencia o respuesta 2, y así indefinidamente, dependiendo de la versatilidad o complejidad de la estructura de control que necesitemos programar para nuestra página web. Con ello, damos cierta interactividad y versatilidad a nuestras páginas.

Así, podemos decir que las sentencias o estructuras condicionales se utilizan para realizar distintas acciones basadas en condiciones diferentes.

Todo script PHP está construido en base a una serie de sentencias. Una sentencia puede ser una asignación, una llamada de función, un ciclo, una sentencia condicional o incluso una sentencia que no hace nada (una sentencia vacía). Las sentencias generalmente finalizan con un punto y coma. Adicionalmente, las sentencias pueden agruparse en un conjunto de sentencias, encapsulándolas entre corchetes. Un grupo de sentencias es una sentencia por sí misma también.
Fuente: http://www.php.net/manual/es/control-structures.intro.php

Las estructuras de control son por tanto secuenciales, siguen un flujo. Veámoslo con un clásico ejemplo (en este primer post todavía sin código):

Si la página web se carga por la mañana, imprime el mensaje de texto “Buenos días”;
Si la página web se carga por la tarde,  imprime el mensaje de texto “Buenas tardes”
Si la página web se carga por la noche,  imprime el mensaje de texto “Buenas noches”

Traduciendo el anterior ejemplo escrito en lenguaje natural a lenguaje PHP, tendríamos que utilizar una estructura de control de flujo del tipo If… elseIf… else (basada en el inglés).  La anterior estructura de flujo (ejemplo en azul) imprimiría (mostraría) un determinado texto de bienvenida dependiendo de la franja horaria en la que el usuario cargue nuestra página web. Pero hay más tipos de estructuras de control de flujo. Todas ellas las veremos en el próximo post., con ejemplos en PHP, por supuesto. Dejo un adelanto de la primera clase de estructuras de control de flujo que vamos a ver, me refiero a las sentencias If:

Bueno, hasta aquí la introducción. En los siguientes posts nos adentraremos más en las estructuras de control, empezando, además de por poner ejemplos de código, por su clasificación, basada en el uso que le damos. Como ya habréis podido observar, las estructuras de control son simples secuencias lógicas trasladadas a la sintaxis propia del lenguaje que vayamos a utilizar, en nuestro caso, PHP.

 

Hasta pronto, prometido (ahora sí!)

 

Lecturas recomendadas:
Estructuras de control en la Wikipedia y este otro enlace (si os manejís bien en la lectura del inglés):  If… Else Statements