{"id":10599,"date":"2017-10-25T07:56:13","date_gmt":"2017-10-25T07:56:13","guid":{"rendered":"http:\/\/localhost\/datacraft2023\/internet-php\/"},"modified":"2022-08-18T07:44:11","modified_gmt":"2022-08-18T10:44:11","slug":"internet-php","status":"publish","type":"page","link":"http:\/\/localhost\/datacraft2023\/internet-php\/","title":{"rendered":"Internet: tutorial de lenguaje PHP"},"content":{"rendered":"

\n

\u00a0Volver al Indice –\u00a0Internet y Tutoriales de Dise\u00f1o Web<\/a><\/h2>\n

\"Internet:<\/p>\n

Por Alejandro Franco –\u00a0cont\u00e1ctenos<\/a><\/h2>\n

Introducci\u00f3n<\/h2>\n

PHP es una tecnolog\u00eda del lado del servidor, que funciona embebida (es decir, incrustada) dentro del c\u00f3digo HTML de una pagina, d\u00e1ndole mayor dinamismo a la misma, con acceso a bases de datos, creaci\u00f3n de foros, libros de visita, rotaci\u00f3n de banners, etc.\u00a0Su sintaxis es heredada de C\/Java y posee gran cantidad de funciones que permiten realizar todas las acciones que soporta el PHP.<\/p>\n

Esta tecnolog\u00eda inici\u00f3 como un pasatiempo de Rasmus Lerdorf pero hoy en d\u00eda, gracias a ser gratis, cuenta con miles de adeptos y actualizaciones muy constantes. Muchas empresas se han fijado en el potencial de PHP, y han dado su apoyo a esta, como es el caso de Zend, uno de los principales contribuyentes para el lanzamiento de la versi\u00f3n 4 de este lenguaje.<\/p>\n

La forma mas facil de averiguar cuando una pagina es o no PHP, es verificando su extensi\u00f3n, que puede ser generalmente .php, .phtml, .php3, .php4<\/p>\n

PHP est\u00e1 siendo explotado con gran provecho alrededor de toda la red… \u00bfquerr\u00e1s perderte este tren?<\/p>\n

Si no es as\u00ed, continua con este tutorial donde descubrir\u00e1s c\u00f3mo instalar el soporte PHP y mySQL en tu Windows, usando el servidor Apache. Luego conocer\u00e1s los fundamentos del lenguaje y para terminar aplicaremos lo aprendido con ejemplos de utilidad.<\/p>\n

Instalaci\u00f3n<\/h2>\n

Este es un peque\u00f1o manual de instrucci\u00f3n para instalar y configurar un peque\u00f1o servidor Apache con soporte para PHP4 y Bases de Datos MySQL bajo el sistema operativo Windows 32. En ning\u00fan momento se pretende ofrecer un completo manual de configuraci\u00f3n de un Servidor Seguro Web, mi intenci\u00f3n es s\u00f3lo ofrecer a los usuarios que se inician en la programaci\u00f3n de webs din\u00e1micas bajo estos sistemas, una gu\u00eda para que no pasen por lo que pas\u00e9 yo tratando de empezar en este campo y cuando a\u00fan no exist\u00eda suficiente material bibliogr\u00e1fico.<\/p>\n

Bajando<\/strong><\/p>\n

Lo primero que necesitamos hacer es bajarnos las aplicaciones del internet desde sus servidores originales.<\/p>\n

    \n
  • Apache 1.3.14<\/li>\n
  • PHP 4<\/li>\n
  • MySQL 3.23<\/li>\n<\/ul>\n

    Estas versiones son lo suficientemente estables para poder trabajar, as\u00ed que no te preocupes por las nuevas versiones de estos programas, luego de que est\u00e9s m\u00e1s experto en el manejo de estos programas podr\u00e1s darte el lujo de actualizarte con las nuevas versiones.<\/p>\n

    Instalando…<\/strong><\/p>\n

    APACHE<\/strong>
    \nLa instalaci\u00f3n del programa Apache es muy simple ya que trae integrado un programa instalador, por lo que te sugiero que no modifiques los valores que trae por defecto durante la instalaci\u00f3n. Si lo haz hecho bien el programa debi\u00f3 haber quedado en C:\\Archivos de Programas\\Apache\\GroupApache y con la opci\u00f3n “TIPICAL”.<\/p>\n

    PHP 4<\/strong>
    \nLa instalaci\u00f3n del PHP es m\u00e1s simple a\u00fan, debes descomprimir el archivo php-4.0.4pl1-Win32.zip en la carpeta C:php, luego tomas el archivo php.ini-dist y lo renombre a php.ini y eso es todo por ahora.<\/p>\n

    mySQL<\/strong>
    \nPara la instalaci\u00f3n del MySQL deber\u00e1s descomprimir el archivo mysql-3.23.36-win.zip en una carpeta temporal, por ejemplo: C:temp, luego ejecutas el programa setup.exe y sigues las instrucciones de instalaci\u00f3n que trae por defecto. Si lo haz hecho bien el programa debi\u00f3 haber quedado en C:mysql y con la opci\u00f3n “TIPICAL”.<\/p>\n

    Configurando…<\/strong><\/p>\n

    APACHE<\/strong>
    \nAqu\u00ed se pone buena la cosa, busca el archivo httpd.conf que est\u00e1 en la siguiente direcci\u00f3n:<\/p>\n

    C:Archivos de Programas\\Apache\\GroupApache\\Confhttpd.conf, \u00e1brelo con un editor de texto como el notepad del Windows para poder editarlo.<\/p>\n

    Busca dentro de este archivo la opci\u00f3n #ServerName new.host.name y sustituyes por esto: ServerName http:\/\/<\/p>\n

    Luego buscas la opci\u00f3n DocumentRoot “C:\/Archivos de Programas\/Apache Group\/Apache\/htdocs” y la sustituyes por esto DocumentRoot “C:\/mis webs”<\/p>\n

    De igual forma buscas la opci\u00f3n <Directory “C:\/Archivos de Programas\/Apache Group\/Apache\/htdocs” y sustituyes por esto <Directory “C:\/mis webs”<\/p>\n

    Es de hacer notar que estas dos \u00faltimas opciones se refieren a la localizaci\u00f3n de la carpeta que contendr\u00e1 las webs a ser “servidas” por v\u00eda http. As\u00ed que usted puede cambiar el nombre y la ubicaci\u00f3n de la carpeta que contendr\u00e1 sus webs.<\/p>\n

    Busca ahora la opci\u00f3n ScriptAlias \/cgi-bin\/ “C:\/Archivos de Programas\/Apache Group\/Apache\/cgi-bin\/” y debajo de esta le agrega la siguiente l\u00ednea: ScriptAlias \/php\/ “C:\/php\/” f\u00edjese que aqu\u00ed se le dice al Apache donde encontrar\u00e1 al interprete de PHP para CGI.<\/p>\n

    Busque ahora las siguientes l\u00edneas:<\/p>\n

    #AddType application\/x-httpd-php .php
    \n#AddType application\/x-httpd-php-source .phps y sustit\u00fayalas por las siguientes:<\/p>\n

    AddType application\/x-httpd-php .php
    \nAddType application\/x-httpd-php .php3
    \nAddType application\/x-httpd-php .phtml
    \nAddType application\/x-httpd-php-source .phps<\/p>\n

    Note usted que en este punto le indicamos al Apache cuales son las extensiones que deber\u00e1 interpretar como programas de PHP, en este caso usted podr\u00e1 usar las extensiones .php, .php3, .phtml y phps, este \u00faltimo es para ofrecer el c\u00f3digo fuente de un script sin interpretarlo como tal.<\/p>\n

    Luego localiza la secci\u00f3n de # Format: Action handler-name \/cgi-script\/location y debajo de esa l\u00ednea escribe la siguiente l\u00ednea: Action application\/x-httpd-php “\/php\/php.exe”, note que en este punto le decimos al Apache d\u00f3nde se encuentra el archivo ejecutable del int\u00e9rprete PHP.<\/p>\n

    Y por \u00faltimo buscamos la l\u00ednea DirectoryIndex index.html y la sustituimos por esta otra l\u00ednea:<\/p>\n

    DirectoryIndex index.html index.htm index.php index.php3 index.phtml<\/p>\n

    Note usted que en esta l\u00ednea le decimos al Apache cuales son las extensiones que debe autointerpretar al abrir una carpeta web.<\/p>\n

    PHP<\/strong><\/p>\n

    Abrimos con un editor de texto el archivo php.ini y verificamos que tenga la siguiente l\u00ednea:<\/p>\n

    extension_dir = .\/ aqu\u00ed le decimos al PHP d\u00f3nde se encuentran ubicadas las extensiones de librer\u00edas .dll en este caso vemos que deben encontrarse en el directorio ra\u00edz del PHP.<\/p>\n

    Luego si lo deseamos buscamos la l\u00ednea ;extension=php_gd.dll y le quitamos el ; que tiene al comienzo, as\u00ed habilitaremos la librer\u00eda de manipulaci\u00f3n de gr\u00e1ficos din\u00e1micos que ofrece una prestaciones muy interesantes. S\u00f3lo resta ubicar el archivo php_gd.dll y copiarlo al directorio ra\u00edz del PHP.<\/p>\n

    Y por \u00faltimo hacemos una copia del archivo php.ini dentro del directorio Windows que por lo general es C:Windows<\/p>\n

    MySQL<\/strong><\/p>\n

    A este programa no hay mucho que configurarle, s\u00f3lo debemos asignarnos una clave al usuario root que har\u00e1 las veces de administrador de las Bases de Datos, y que por defecto en la instalaci\u00f3n el usuario root viene sin clave y con todos los permisos de ejecuci\u00f3n.<\/p>\n

    As\u00ed que nos vamos al modo DOS: y hacemos lo siguiente:<\/p>\n

    C:>mysql>bin>mysqld.exe<\/p>\n

    C:>mysql>bin>mysqladmin -u root -pxxxxxx<\/p>\n

    Sustituyes las xxxxxx por la clave que tu quieras y listo, ya les asignaste una clave al usuario root. Recuerda que el root tiene todos los permisos de ejecuci\u00f3n as\u00ed que ten cuidado de lo que puedas alterar.<\/p>\n

    Probando<\/strong><\/p>\n

    Ya llegamos a la parte divertida, reiniciamos la PC, autom\u00e1ticamente el Apache se ejecutar\u00e1 con el Windows. Abre tu navegador puede ser el Internet Explorer y escribes el la barra de direcciones lo siguiente: http:\/\/localhost en este punto deber\u00eda abrirse el servidor web ofreci\u00e9ndote un listado de los archivos y carpetas que hay en tu directorio web, en nuestro caso C:mis webs. Ya con esto vemos que el apache funciona.<\/p>\n

    Ahora creamos un archivo que llamaremos info.php con el siguiente script de php:<\/p>\n

    <?php echo phpinfo()?><\/p>\n

    y lo guardamos dentro de nuestra carpeta web C:mis webs, ahora desde nuestro navegador escribimos la siguiente direcci\u00f3n http:\/\/localhost\/info.php y deber\u00edas ver una web con una gran contenido de informaci\u00f3n de las variables de proceso del PHP dentro de tu PC. Esto nos demuestra que el Apache es capaz de interpretar PHP y que \u00e9ste est\u00e1 funcionando.<\/p>\n

    Lo b\u00e1sico<\/h2>\n

    PHP no es m\u00e1s que c\u00f3digos de programa incluidos dentro de una p\u00e1gina Web y que se ejecuta desde el servidor el cual deber\u00e1 aportar soporte para interpretar este lenguaje, enviando as\u00ed al navegador el resultado del programa procesado. Expliquemos estos con este ejemplo:<\/p>\n

    Dentro de una p\u00e1gina Web hecha con HTML le incluimos el siguiente SCRIPT:<\/p>\n

    <?php
    \necho “Bienvenidos al mundo del PHP”;
    \n?><\/p>\n

    Esto enviar\u00e1 como resultado al navegador lo siguiente:<\/p>\n

    Bienvenidos al mundo del PHP<\/p>\n

    Lo incre\u00edble del esto es que jam\u00e1s mostrar\u00e1 el c\u00f3digo del programa… s\u00f3lo enviar\u00e1 la respuesta del programa despu\u00e9s de procesada.<\/p>\n

    Creo que ya comprendes entonces que es lo que hace PHP, si hacemos volar la imaginaci\u00f3n te dar\u00e1s cuenta la amplia cantidad de aplicaciones que le podemos dar a este poder… manipular fechas y tiempos, manipular bases de datos, realizar c\u00e1lculos matem\u00e1ticos, personalizar las presentaciones seg\u00fan lo deseemos, etc.<\/p>\n

    Por lo pronto, comencemos con la sintaxis de este lenguaje y para ello analicemos el siguiente SCRIPT:<\/p>\n

    <?php
    \n$MYVAR = “1234”;
    \n$myvar = “4321”;<\/p>\n

    echo $MYVAR. “<br>”;
    \necho $myvar.”<br>”;
    \n?><\/p>\n

    Esto dar\u00e1 como resultado:<\/p>\n

    1234
    \n4321<\/p>\n

    Lo primero que vemos en este SCRIPT es que las instrucciones de PHP comienzan con <?php y terminan con?> por lo que incluso se pueden crear varios conjuntos de instrucciones dentro de una misma pagina Web. Lo siguiente que observamos es que las variables comienzan con el s\u00edmbolo $ y que se diferencian las may\u00fasculas de las min\u00fasculas, es decir, son sensible case. Las etiquetas <BR> est\u00e1n concatenadas por un punto “.” con lo que el navegador har\u00e1 una salto de l\u00ednea, y por \u00faltimo notar\u00e1s que todas las l\u00edneas de comandos terminan con punto y coma “;” , esto es muy importante de no olvidar.<\/p>\n

    \n

    Pero veamos ahora un ejemplo m\u00e1s complejo a\u00fan:<\/p>\n

    <?php
    \n$SUM1 = 12;
    \n$SUM2 = 4;
    \n$TOT = $SUM1 + $SUM2;
    \necho “La sumatoria de ” . $SUM1. ” m\u00e1s ” .$SUM2. ” es igual a ” .$TOT”;
    \n\/\/ Este programa realiza la suma de 12 + 4 y lo presenta en pantalla
    \n?><\/p>\n

    Creo que esto no necesita mucha explicaci\u00f3n, como es f\u00e1cil ver lo que este peque\u00f1o programa hace es: declarar el contenido de la primera variable, declarar el contenido de la segunda variable, realizar la suma de ambas variables y asignarla a una nueva variable, y por \u00faltimo realiza la salida del resultado pero incluyendo texto para hacer m\u00e1s f\u00e1cil la interpretaci\u00f3n del mismo. Veremos como resultado en pantalla:<\/p>\n

    La sumatoria de 12 m\u00e1s 4 es igual a 16<\/p>\n

    Notemos que para poder hacer la mezcla de variables con texto hemos recurrido a la concatenaci\u00f3n y esto se hace interponiendo un punto “.”. Podemos observar tambi\u00e9n que hay un comentario dentro del SCRIPT, este comentario no afectar\u00e1 en nada al programa pero es importante acostumbrar usarlos para mantener organizados nuestro programa y no confundirnos en un programa m\u00e1s extenso.<\/p>\n

    Existen varias formas de incluir comentarios y estas son:<\/p>\n

    \/\/ Esto da comienzo a una l\u00ednea con comentarios.
    \n\/\/ Esto es un comentario<\/p>\n

    \/* Esto da comienzo a un grupo de l\u00edneas de comentario, se cierra con *\/
    \n\/* Esto es un comentario
    \nque incluye varias l\u00edneas.
    \nEs por eso que uso este tipo de inclusi\u00f3n. *\/<\/p>\n

    Variables<\/h2>\n

    En PHP no es necesario declarar la variable, es decir, no es necesario decirle al programa si una variable es una cadena o un n\u00famero entero, ya que PHP se encargar\u00e1 de definirla por s\u00ed mismo.<\/p>\n

    Por ejemplo:<\/p>\n

    <?php
    \n$cadena = “Hola Mundo”;
    \n$numero = 100;
    \n$decimal = 8.5;
    \n?><\/p>\n

    Como puedes observar las tres variables fueron simplemente definidas con un valor y no necesariamente con el tipo. Tanto “Hola Mundo” que es una cadena, como 100 que es un n\u00famero y 8.5 que es un decimal, son aceptadas por el PHP e interpretadas en la ejecuci\u00f3n del script.<\/p>\n

    Ahora veamos el \u00e1mbito de las variables. En muchos tutoriales nos confunden mucho acerca de este concepto, pero el \u00e1mbito de una variable, no es m\u00e1s que el lugar que tiene en un script. Cuando son de \u00e1mbito global, la variable ocupa un lugar en todas las partes del script, y puede ser utilizada en cualquier momento; pero si es de \u00e1mbito local, quiere decir, que s\u00f3lo existir\u00e1 y operar\u00e1 dentro de una funci\u00f3n y no podr\u00e1 ser accedida por el script en general, ni por las otras funciones.<\/p>\n

    Para declarar a una variable, de \u00e1mbito global, podemos utilizar la palabra clave global, aunque simplemente con definirla fuera de cualquier funci\u00f3n ya se le est\u00e1 dando ese \u00e1mbito. Veamos un ejemplo, para aclarar este concepto:<\/p>\n

    <?
    \nglobal $variable; \/\/la variable ya es de \u00e1mbito global
    \n$numero = 1; \/\/la variable es de \u00e1mbito global, aunque no se ha declarado con global<\/p>\n

    function multiplicar(){
    \n$multiplicacion = ($numero * 50); \/\/multiplicacion solo existe en la funcion multiplicar()
    \necho $multiplicacion;
    \n}<\/p>\n

    ?><\/p>\n

    En el anterior ejemplo se observa claramente cu\u00e1ndo una variable es de \u00e1mbito global y local. La variable $numero puede ser accedida dentro y fuera de cualquier funci\u00f3n, tal como lo hace la funci\u00f3n multiplicar() que se encarga de multiplicar dicho n\u00famero ($numero) por 50. Pero lo m\u00e1s destacable de esa funci\u00f3n es que f\u00e1cilmente puede llamar a la variable $numero, en vista de que \u00e9sta es de \u00e1mbito global, pero realiza la operaci\u00f3n dentro de la variable $multiplicacion, que s\u00f3lo existe durante la ejecuci\u00f3n de multiplicar(), porque fue utilizado y definida en esa funci\u00f3n, y no globalmente. De ah\u00ed se puede resumir, que una variable es de \u00e1mbito global cuando se declara fuera de cualquier funci\u00f3n, o con la palabra global, y que es de \u00e1mbito local si se declara y utiliza dentro de alguna funci\u00f3n.<\/p>\n

    Para terminar con el tema de las variables, podemos tratar un poco sobre los arrays, o vectores, que son un tipo de variables especiales, que pueden contener muchos elementos al tiempo, generalmente relacionados entre si.<\/p>\n

    <?php
    \n$animales = array(); \/\/con array() se declara que la variable es un vector
    \n$animales[0] = “Gato”;
    \n$animales[1] = “Perro”;
    \n$animales[2] = “Elefante”;
    \n?><\/p>\n

    Como ves, la variable $animales, es declarado al inicio con new Array(), lo que permite incluir diferentes elementos dentro de ella.
    \nCada uno de esos elementos se debe crear utilizando el nombre del array seguido por un n\u00famero entre corchetes, el cual definir\u00e1 el elemento en s\u00ed: $animales es un array, pero $animales[0], es un elemento del array, y su valor es la cadena Gato.<\/p>\n

    Los arrays son muy \u00fatiles cuando, como en nuestro ejemplo, en lugar de crear variables distintas para cada elemento, utilizamos uno en com\u00fan que los incluya a todos. De este modo si por ejemplo queremos mostrar un listado de animales, podemos recorrer el array $animales, en lugar de crear variables como $gato, $perro, $jirafa, etc<\/p>\n

    Operadores<\/h2>\n

    Los operadores son s\u00edmbolos especiales que se utilizan para realizar tanto operaciones matem\u00e1ticas, como de comparaci\u00f3n. Veamos un listado de los m\u00e1s utilizados en PHP y un ejemplo general.<\/p>\n

    + Suma varios n\u00fameros 5 + 4 = 9<\/p>\n

    – Resta varios n\u00fameros 5 – 4 = 1<\/p>\n

    * Realiza una multiplicaci\u00f3n 3 * 3 = 9<\/p>\n

    \/ Realiza una divisi\u00f3n 10\/2 = 5<\/p>\n

    % Devuelve el residuo de una divisi\u00f3n 10 % 3 = 1<\/p>\n

    ++ Suma 1 $v++ (Agrega 1 a $v)<\/p>\n

    — Resta 1 $v– (Resta 1 a $v)<\/p>\n

    == Devuelve true si la condici\u00f3n de igualdad se cumple 2 == 2 (Verdadero)<\/p>\n

    != Devuelve true sin la condici\u00f3n de igualdad no se cumple 2 !== 2 (Falso)<\/p>\n

    < Devuelve true si un n\u00famero es menor que el otro 2 < 5 (Verdadero)<\/p>\n

    > Devuelve true si un n\u00famero es mayor que el otro 6 > 4 (Verdadero)<\/p>\n

    <= Devuelve true si un n\u00famero es menor o igual que otro 2 <= 5 (Verdadero)<\/p>\n

    >= Devuelve true si un n\u00famero es mayor o igual que otro 6 >= 4 (Verdadero)<\/p>\n

    Por ahora veremos un ejemplo pr\u00e1ctico de los operadores matem\u00e1ticos, m\u00e1s adelante, en las estructuras de control, se aplicar\u00e1n los operadores l\u00f3gicos.<\/p>\n

    <?php
    \n$a = 5;
    \n$b = 10;<\/p>\n

    $suma = ($a + $b); \/\/$suma vale 15
    \n$resta = ($b – $a); \/\/$resta vale 5
    \n$multiplicacion = ($a * $b); \/\/$multiplicacion vale 50
    \n$division = ($b \/ $a); \/\/$division vale 2
    \n$residuo = ($b % $a); \/\/$residuo vale 0
    \n?><\/p>\n

    Estructuras de control<\/h2>\n

    Gracias a las estructuras de control, podemos realizar comprobaciones y ejecutar c\u00f3digos especiales para hacer de nuestros scripts algo verdaderamente \u00fatil. Dentro de las estructuras de control encontramos las funciones de condici\u00f3n y los bucles. Estas son las que trataremos.<\/p>\n

    Condicionales
    \nLos condicionales, o bifurcaciones, son estructuras que permiten llevar a cabo determinadas acciones, de acuerdo a la validez de una sentencia. Al igual que en la mayor parte de los lenguajes, en PHP se utilizan el if…else y el switch.<\/p>\n

    <?php
    \n$a = 5;
    \n$b = 2;<\/p>\n

    if($a == $b){
    \necho “Por estos dias 5 es igual a 2”;
    \n}
    \nelse{
    \necho “Como era de esperarse 5 no es igual a 2”;
    \n}
    \n?><\/p>\n

    La instrucci\u00f3n if verifica la validez de la sentencia, en este caso, $a == $b, como mencionamos anteriormente, el operador == devuelve verdadero si $a es igual a $b, entonces, si es ese caso, escribimos en pantalla la cadena Por estos dias 5 es igual a 2.
    \nDe lo contrario (else), es decir, si $a no es igual a $b, devolvemos la cadena Como era de esperarse 5 no es igual a 2.<\/p>\n

    Para resumir podemos definir la instrucci\u00f3n if…else como:<\/p>\n

    <?php
    \nif(sentencia){
    \nacciones que se ejecutan si la sentencia es verdadera
    \n}
    \nelse{
    \nacciones que se ejecutan si la sentencia es falsa
    \n}
    \n?><\/p>\n

    El switch es una estructura que no se utiliza frecuentemente, por lo que veremos c\u00f3mo se puede ampliar el if…else de forma que soporte m\u00e1s de dos caminos.<\/p>\n

    <?php
    \n$a = 5;
    \n$b = 2;<\/p>\n

    if($a == $b){
    \necho “5 es igual a 2”;
    \n}
    \nelse if($a < $b){
    \necho “5 es menor que 2”;
    \n}
    \nelse if($a > $b){
    \necho “5 es mayor que 2”;
    \n}
    \nelse{
    \necho “5 no es igual a 2”;
    \n}<\/p>\n

    ?><\/p>\n

    Con lo anterior hemos expandido el if…else a tal punto que ahora no s\u00f3lo valida que $a sea igual que $b, sino tambi\u00e9n si es mayor o menor. Todo esto con else if, pero al final, con el else normal, podemos devolver algo, en caso de que ninguna de todas las condiciones se cumplan.<\/p>\n

    Bucles<\/h2>\n

    Lo \u00faltimo que trataremos sobre las estructuras de control son los bucles. Un bucle es una instrucci\u00f3n que ejecuta repetidamente una acci\u00f3n, hasta que se cumple determinada condici\u00f3n. Existen dos tipos de bucles en PHP, los bucles for y los while<\/p>\n

    El bucle while es menos complejo que el for, pero a\u00fan as\u00ed permite ejecutar funciones interesantes.<\/p>\n

    <?php
    \n$a = 5;
    \nwhile($a < 7){
    \necho “a vale $a en este momento.n<br>”;
    \n$a++;
    \n}
    \n?><\/p>\n

    El bucle while, en este caso, se ejecuta mientras $a (que inicia con un valor de 5), sea menor que 7 y mientras se ejecuta se imprime una l\u00ednea que muestra un texto y anuncia el valor actual de dicha variable…. pero por qu\u00e9 es un bucle? Porque al final, y haciendo uso del operador de sumatoria ++, hacemos que a aumente en 1. De este modo, en cada ejecuci\u00f3n del bucle a va a valer 1 m\u00e1s, hasta llegar al momento en que su valor sea 7, ah\u00ed deja de ejecutarse el bucle.<\/p>\n

    Para ver c\u00f3mo se ejecutar\u00eda la misma acci\u00f3n, utilizando el for, veamos un ejemplo.<\/p>\n

    <?php
    \nfor($a=5; $a < 7; $a++){
    \necho “a vale $a en este momento.n<br>”;
    \n}
    \n?><\/p>\n

    Eso es todo. La \u00fanica diferencia es que en la misma sentencia del for se declara la variable y su valor, luego la condici\u00f3n y finalmente la modificaci\u00f3n que se realiza a la variable, en este caso se aumenta en 1.<\/p>\n

    Funciones<\/h2>\n

    Para terminar esta introducci\u00f3n al PHP, veremos c\u00f3mo se utilizan y funcionan las funciones, tanto las tradicionales, como las recursivas, que devuelven siempre alg\u00fan valor.<\/p>\n

    Las funciones en PHP pueden contener o no par\u00e1metros, lo que determina si son o no recursivas. Si se la pasan par\u00e1metros y estos permiten devolver alg\u00fan valor, se dice que la funci\u00f3n es recursiva, de lo contrario ser\u00e1 una funci\u00f3n tradicional.
    \nEn general, todas las funciones sirven para evitar escribir c\u00f3digos repetitivos durante la ejecuci\u00f3n del script; en cambio, simplemente se llama a una funci\u00f3n.<\/p>\n

    Antes de presentar un ejemplo para mostrar los dos tipos de funciones, hay que tener en cuenta que una funci\u00f3n se establece con la palabra clave function, y sus instrucciones se ejecutan entre llaves, al igual que en las estructuras de control.<\/p>\n

    <?php
    \nfunction sumaRecursiva($a, $b){
    \n$suma = $a + $b;
    \nreturn $suma;
    \n}<\/p>\n

    function dosmasdos(){
    \n$sumatoria = sumaRecursiva(2,2);
    \necho $sumatoria;
    \n}<\/p>\n

    ?><\/p>\n

    Ah\u00ed est\u00e1. A la funci\u00f3n suma Recursiva se le deben pasar dos par\u00e1metros y dentro de dicha funci\u00f3n se realiza la suma de los dos. Luego lo devuelve con la palabra clave return.
    \nFinalmente existe la funci\u00f3n dosmasdos(), que declara una variable local con el resultado que devuelve sumaRecursiva, si los par\u00e1metros son 2 y 2. De este modo, sumaRecursiva retorna la suma de dos m\u00e1s dos que es 4, y dosmasdos(), simplemente lo imprime en pantalla.<\/p>\n

    Ejemplos \u00fatiles<\/h2>\n

    Algunos ejemplos \u00fatiles que permitir\u00e1n sacar m\u00e1s provecho al PHP:<\/p>\n

    Funciones de Cadena<\/strong><\/p>\n

    PHP provee de muchas funciones interesantes para trabajar con cadenas, veremos solo algunas:<\/p>\n

    strlen – Devuelve la longitud de una cadena (numero de caracteres)
    \nexplode – Parte una cadena de acuerdo a un car\u00e1cter separador, y devuelve un vector con dichas divisiones.
    \nchop – Elimina los espacios finales de una cadena, as\u00ed como sus saltos de l\u00ednea
    \nstrpos – Busca una cadena dentro de otra y devuelve su posici\u00f3n.
    \nstr_replace – Reemplaza una cadena por otra.<\/p>\n

    <?php
    \n$cadena = “hola”;
    \n$otracadena = “hola-mundo”;<\/p>\n

    $longitud = str_len($cadena); \/\/devuelve 4<\/p>\n

    $partes = explode(“-“,$otracadena); \/\/genera el array $partes con $partes[0]=”hola” y $partes[1]=”mundo”;<\/p>\n

    $chop = chop($cadena.”n”); \/\/agregamos un n para probar, pero chop lo elimina<\/p>\n

    $reemplaza = str_replace(“-“,” “,$otracadena); \/\/$reemplaza contiene Hola Mundo. Notese que cambiamos el – por un espacio<\/p>\n

    ?><\/p>\n

    Leyendo un archivo<\/strong><\/p>\n

    Existen m\u00faltiples maneras de leer archivos utilizando PHP, pero vamos a usar una que es muy pr\u00e1ctica para el entendimiento del lenguaje, ya que adem\u00e1s de ver algunas funciones adicionales, se utiliza un bucle para leer cada l\u00ednea, lo que desmiente el temor que se tiene por la dificultad de manejar estas estructuras.
    \nPara este ejemplo supondremos que el archivo a leer es archivo.txt, y que tendr\u00e1 alg\u00fan contenido para mostrar, ya que eso es lo que nos interesa.<\/p>\n

    <?
    \n$archivo = file(“archivo.txt”);
    \n$lineas = count($archivo);<\/p>\n

    for($i=0; $i < $lineas; $i++){
    \necho $archivo[$i];
    \n}
    \n?><\/p>\n

    Existen otras formas de leer archivos, como ya mencionamos m\u00e1s arriba, pero esta es una de las m\u00e1s sencillas.
    \nLo primero que hacemos es declarar la variable $archivo que genera un array con cada una de las l\u00edneas del archivo (por medio de la funci\u00f3n file()).
    \nLuego $lineas hace uso de la funci\u00f3n count(), que cuenta el n\u00famero de elementos de un array, en este caso, el array que se gener\u00f3 con las l\u00edneas del archivo. De ah\u00ed deducimos, que el n\u00famero de elementos del array es el n\u00famero de l\u00edneas del archivo.<\/p>\n

    Finalmente, se ejecuta un bucle hasta que se llegue al final del archivo (total de n\u00famero de l\u00edneas) y por cada iteraci\u00f3n se escribe en pantalla el contenido de la l\u00ednea que se est\u00e1 leyendo.
    \nComo ves, es una forma muy sencilla y \u00fatil de leer archivos.<\/p>\n

    PHP y MySQL<\/h2>\n

    mySQL es uno de los sistemas de bases de datos m\u00e1s populares en el mercado, y PHP se integra a la perfecci\u00f3n con \u00e9l, de tal modo, que la mayor parte de los hosts incluyen esta dupla.
    \nPara la creaci\u00f3n de tablas y bases se debe acceder al shell del mysql, o usar un administrador v\u00eda web como el phpMyAdmin que puede ser descargado gratuitamente desde el web.
    \nPara esta informaci\u00f3n contacta con tu hosting. Aqu\u00ed s\u00f3lo veremos c\u00f3mo conectarnos a la base de datos y tomar los datos de una tabla hasta terminar los registros.<\/p>\n

    <?php<\/p>\n

    function conectar($servidor, $usuario, $password, $base_datos){
    \nif (!($link=mysql_connect($servidor,$usuario,$password))){
    \nexit();
    \n}
    \nif(!(mysql_select_db($base_datos,$link))){
    \nexit();
    \n}
    \nreturn $link;
    \n}<\/p>\n

    $conexion = conectar(“”,”usuariomysql”,”passmysql”,”basededatos”);
    \n$sql = mysql_query(“select nombre, email from amigos order by nombre”,$conexion);<\/p>\n

    while($row = mysql_fetch_array($sql)){
    \n$nombre = $row[“nombre”];
    \n$email = $row[“email”];
    \necho “<a href=’mailto:$email’><b>$nombre<\/b><\/a>n<br>”;
    \n}
    \nmysql_free_result($sql);
    \nmysql_close($conexion);
    \n?><\/p>\n

    La linea resaltada contiene los datos de acceso a mysql. Debes consultar eso con tu hosting, son simplemente el nombre de usuario, password y tu base de datos. El servidor por lo general es localhost, o lo dejas en blanco.<\/p>\n

    Entrando en el c\u00f3digo en s\u00ed, primero vemos una funci\u00f3n que se conecta y selecciona la base de datos (conectar()). Luego la accedemos en una variable ($conexion).<\/p>\n

    La variable $sql contiene la sentencia sql a ejecutar. Para procesarla, se hace uso de la funci\u00f3n del mysql, mysql_query(sentencia, id_conexion). En este caso suponemos que hay una tabla llamada amigos que podr\u00eda contener a nuestros contactos, y tomamos de ella el nombre y el email (filas).<\/p>\n

    Luego se ejecuta el bucle while que se ejecuta hasta llegar al final de los registros, y asignamos, durante la iteraci\u00f3n, dos variables: $nombre que contiene la fila nombre del registro que se est\u00e1 mostrando, lo mismo que $email. Luego damos una salida HTML tradicional con un enlace al email y el nombre del contacto.<\/p>\n

    Liberamos la memoria con mysql_free_result() y cerramos la conexi\u00f3n.<\/p>\n

    Con mysql se pueden hacer cosas m\u00e1s complejas, pero aqu\u00ed s\u00f3lo tratamos de introducir al PHP, y mysql porque este es el caso.<\/p>\n","protected":false},"excerpt":{"rendered":"

    investigamos el lenguaje PHP y ofrecemos un tutorial del mismo<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":[],"_links":{"self":[{"href":"http:\/\/localhost\/datacraft2023\/wp-json\/wp\/v2\/pages\/10599"}],"collection":[{"href":"http:\/\/localhost\/datacraft2023\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"http:\/\/localhost\/datacraft2023\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"http:\/\/localhost\/datacraft2023\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/localhost\/datacraft2023\/wp-json\/wp\/v2\/comments?post=10599"}],"version-history":[{"count":0,"href":"http:\/\/localhost\/datacraft2023\/wp-json\/wp\/v2\/pages\/10599\/revisions"}],"wp:attachment":[{"href":"http:\/\/localhost\/datacraft2023\/wp-json\/wp\/v2\/media?parent=10599"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}