Introducción profesional a PHP

Guía completa para dominar las últimas versiones del lenguaje de programación líder en servidores web.
4.2 (30 ratings)
Instead of using a simple lifetime average, Udemy calculates a
course's star rating by considering a number of different factors
such as the number of ratings, the age of ratings, and the
likelihood of fraudulent ratings.
420 students enrolled
$19
$20
5% off
Take This Course
  • Lectures 68
  • Length 15.5 hours
  • Skill Level Beginner Level
  • Languages Spanish
  • Includes Lifetime access
    30 day money back guarantee!
    Available on iOS and Android
    Certificate of Completion
Wishlisted Wishlist

How taking a course works

Discover

Find online courses made by experts from around the world.

Learn

Take your courses with you and learn anywhere, anytime.

Master

Learn and practice real-world skills and achieve your goals.

About This Course

Published 6/2014 Spanish

Course Description

Bienvenido al curso de PHP profesional, en el que aprenderás los fundamentos del lenguaje de programación más utilizado en servidores web.

Vamos a centrarnos en el desarrollo con las últimas versiones de PHP (actualmente la 5.6), aprendiendo y repasando todos los conceptos básicos para que adquieras unos cimientos sólidos que te permitan continuar tu aprendizaje por ti mismo si así lo quisieras.

Comenzaremos aprendiendo qué es HTML, cuáles son los fundamentos de la arquitectura cliente-servidor, qué es y para qué sirve HTTP, cuáles son las características de PHP. Verás que PHP es mucho más de lo que pensabas: usaremos la consola interactiva, el servidor web de PHP y trabajaremos con aplicaciones de consola en PHP.

Continuaremos aprendiendo la sintáxis básica de PHP: qué es una variable, tipos de datos simples y compuestos, operadores del lenguaje, condicionales, bucles, cómo estructurar el código en distintos ficheros.

Conoceremos las principales funciones del sistema, revisándolas una a una. Navegaremos por la documentación de PHP para que tú mismo sepas cómo encontrar lo que necesitas. Vamos a conocer también las funciones que tenemos para trabajar con distintos tipos de datos: numéricos, textos, matrices, fechas...

Revisaremos cuáles son las formas de que disponemos para crear nuestras propias funciones.

Aprenderemos a trabajar con ficheros en profundidad: cómo moverlos, eliminarlos, crear carpetas, leer su contenido, escribir en ellos, etc.

Modificaremos imágenes, donde podremos trabajar a partir de otras ya existentes o creándolas desde cero. Podrás añadir marcas de agua, redimensionar, añadir textos, formas geométricas, etc.

Integraremos PHP con HTTP, conociendo a fondo el funcionamiento de los formularios: recibiremos cualquier dato o fichero que envíe el usuario. Sabremos cómo hacer redirecciones, cómo indicar que una página no existe. Gestionaremos las sesiones de usuario mediante cookies. Enviaremos correos electrónicos con contenido HTML.

Por último, si ya tienes fundamentos de bases de datos, aprenderás a integrarlas con tu página web. También sabrás lo que nadie te enseña: cómo funciona el mundo del alojamiento de páginas web. Veremos una introducción breve a Apache, el servidor web más utilizado, y aprenderemos algunos trucos, como por ejemplo cómo proteger con contraseña de forma muy sencilla toda nuestra web, o como crear URLs amigables.

What are the requirements?

  • Es recomendable tener conocimientos básicos de HTML
  • Un equipo de escritorio (Windows, Mac, Linux) con permisos para instalar el sofware que utilicemos

What am I going to get from this course?

  • Sentar los fundamentos de PHP que permiten acceder a contenidos avanzados
  • Conocer la sintaxis de las últimas versiones de PHP
  • Entender el flujo de trabajo en un entorno cliente-servidor HTTP
  • Una vez finalizado el curso podrás programar páginas dinámicas, paneles de control, carga y modificación de imágenes, autenticación de usuarios, etc.

What is the target audience?

  • Estudiantes de ciclos formativos o universitarios
  • Profesionales que necesitan adquirir nuevas competencias
  • Autodidactas interesados en el desarrollo web

What you get with this course?

Not for you? No problem.
30 day money back guarantee.

Forever yours.
Lifetime access.

Learn on the go.
Desktop, iOS and Android.

Get rewarded.
Certificate of completion.

Curriculum

Section 1: Introducción
10:18

Presentación del curso. Breve repaso a las tecnologías que utilizamos en el lado del cliente para generar una página web: HTML, CSS y JavaScript.

11:21

Conceptos básicos de redes: Internet, protocolo, IP, dominio, HTTP, URL, navegador, etc. Proceso de carga de una web. Modelo cliente-servidor. Estructura —y cabeceras— del sistema petición-respuesta de HTTP.

06:45

Lista de tecnologías de programación en el cliente. Fortalezas de la programación en el cliente. Tecnologías de programación en el servidor. Ventajas del desarrollo en el servidor.

19:59

Características del lenguaje: open source, interpretado, multiplataforma, orientado a objetos, débilmente tipado, etc. Historia del lenguaje. Uso de PHP actual. Primer ejemplo. Herramientas para trabajar con PHP: (1) editores de código y (2) servidores web. Instalación del servidor en diferentes sistemas operativos. Modos de ejecutar código PHP: como servidor web, en interfaz de consola o con la consola interactiva.

Examen introducción
11 questions
Section 2: Sintaxis de PHP
11:28

Extensión .php. Fichero predeterminado index.php. Etiquetas para encerrar código PHP: <?php y ?>. Constructor echo. Separación de instrucciones mediante ;. Comentarios. Tipos de comentarios: de una línea o de varias.

17:38

Concepto de variable. Características de las variables en PHP: tamaño variable y tipado dinámico. Reglas para los nombres de variables. Creación, mediante el operador =. Cómo usar variables. Tipos de datos de PHP. Tipos escalares. Qué es y cómo crear un strings, con comillas simples y con comillas dobles (interpolación de variables). Operador . para concatenar strings. Valores numéricos enteros con integer. Operadores matemáticos básicos. Valores reales con float. Separador de decimales: .. Tipo booleano (verdadero y falso) con boolean.

12:38

Tipos de datos compuestos. Qué es y cómo crear un array. Diferencia entre arrays indexados y asociativos. Acceso a elementos de un array. Añadir o actualizar elementos de un array. Concepto de objeto. Tipo de dato resource. Tipo y valor null.

16:07

Conversión entre tipos: casting en PHP. Reglas de conversión entre escalares. Variables predefinidas del sistema: $_SERVER, $_GET, $_POST, $_FILES, $_REQUEST, $_COOKIE, $_SESSION, $_ENV. Información del cliente mediante $_SERVER. Constantes: qué son y cómo crearlas. Constantes predefinidas: __LINE__, __FILE__, __DIR__.

13:39

Unidad con cuatro ejercicios.

Examen variables
11 questions
12:04

Concepto de operador. Clasificación: (1) por sus operandos y (2) por su función. Operadores aritméticos. Operadores de strings. Operadores lógicos.

11:37

Operadores de comparación. Operadores de arrays. Operadores de asignación. Operadores de incremento / decremento.

11:29

Problemática. Concepto de condicional. Ejemplo de condición con if. Condición con else. Condiciones con elseif. Sentencia switch. Sintaxis alternativa.

09:07

Varios elseif. Sentencia switch. Sintaxis alternativa.

08:38

Problemática. Concepto de bucle. Presentación de los tipos de bucles. Bucle while —0 o más repeticiones. Bucle do ... while —1 o más repeticiones. Diferencia entre while y do ... while.

13:44

Bucle for. Bucles con arrays: foreach. Sentencias continue y break.

12:47

Problemática. Ventaja de dividir el código en ficheros. Constructores require e include. Constructores require_once e include_once. Rutas de ficheros e include_path. Fichero de configuración de PHP: php.ini. Directivas de php.ini.

Examen flujo de control
10 questions
13:05

Unidad con cinco ejercicios.

08:45

Continuación de los ejercicios resueltos.

Section 3: Funciones
11:11

Concepto de función. Parámetros y valores devueltos. Componentes de una función. Funciones incluidas en PHP. Documentación de funciones. Cómo leer la documentación de una función en la web de PHP. Pseudotipo mixed y number. Notación para documentar parámetros opcionales. Notación para documentar parámetros ilimitados. Navegación por la documentación de PHP.

19:52

Función is_numeric(). Funciones is_int() y is_float() para comprobar el tipo de número. Números binarios. Conversión entre binario y decimal: decbin() y bindec(). Números octales y notación octal. Conversión entre octal y decimal: decoct() y octdec(). Números hexadecimales y notación hexadecimal. Conversión entre hexadecimal y decimal: dechex() y hexdec(). Precisión numérica según la arquitectura. Conversión entre bases arbitrarias: base_convert(). De real a entero: floor(), ceil() y round(). Números (pseudo)aleatorios, con rand(). Función y constante para el número Pi: pi() y M_PI. Potencias, con pow() y con operador ** desde PHP 5.6. Raices cuadradas, con sqrt(). Funciones trigonométricas. Otras funciones.

12:23

Constructores echo y print. Averiguar si un dato es string: is_string(). Tamaño de un texto, con strlen(). Posición de una cadena en un texto, con strpos().

09:20

Extraer parte de un string: substr(). Convertir a mayúsculas y minúsculas: strtoupper() y strtolower(). Capitalizar letras: ucfirst() y ucwords(). Eliminar espacios: trim(), ltrim() y rtrim().

16:42

PHP y HTML. Cambios de línea a <br />: nl2br(). Entidades HTML. Seguridad frente ataques XSS. Conversión a entidades HTML: htmlspecialchars() y htmlentities(). Inversas: htmlspecialchars_decode() y html_entity_decode(). Función wordwrap() para separar un texto en líneas. Analizar y extraer los campos que componen una URL: parse_url(). Codificación de URL —url encode— con urlencode() y urldecode.

08:06

Repaso de conceptos. Notación Heredoc. Notación Nowdoc. Curly syntax.

13:09

Juegos de caracteres de un byte: ASCII, ISO-8859-1, ISO-8859-15. Carácter a número y viceversa: ord() y chr(). Estructura de un string. Juego de caracteres multibyte UTF-8. Cómo trabajar en PHP con UTF-8. Conversión entre UTF-8 e ISO-8859-15: utf8_encode() y utf8_decode(). Conversión entre juegos de caracteres arbitrarios: mb_convert_encoding(). Funciones de strings multibyte. Concepto de función hash. Algoritmos md5 y sha1, con md5() y sha1(). Arrays y strings: implode() y explode().

Examen de funciones I
10 questions
17:40

Función is_array(). Contar elementos, con count(). Visualizar un array, print_r() y var_dump(). Repaso de creación de arrays. Sintaxis con corchetes, desde PHP 5.4. Función range() para crear un array con un rango numérico. Añadir elementos. Añadir elemento al final con array_push(). Añadir elemento al comienzo con array_unshift(). Añadir muchos elementos, con array_merge() y con operador +. Eliminar el último elemento: array_pop(). Eliminar el primer elemento: array_shift(). Concepto de pilas y colas.

14:14

Extraer un subarray con array_slice(). Comprobar si contiene un valor o una clave, con in_array() y con array_key_exists(). Operaciones con arrays asociativos: array_keys() para obtener las claves; array_values() para obtener los valores; array_flip para intercambiar claves y valores; array_combine() para unir dos arrays —uno de claves y otro de valores. Arrays y strings: implode() y explode(). Constructor list para asignar un valor devuelto de tipo array a variables escalares.

07:09

Introducción. Qué son las locales. Cómo establecerlas en PHP, con setlocale(). Qué es un UNIX timestamp. Obtenerlo con time()—ahora— o con mktime() —personalizado.

14:02

Formatos de fecha y hora con strftime(). Análisis de strings para obtener la fecha, con strptime(). Formatos de fecha y hora con date() —solo en inglés.

Examen de funciones II
10 questions
18:28

Unidad con cuatro ejercicios.

19:49

Continuación de los ejercicios resueltos.

Section 4: Crear funciones
06:07

Concepto de función. Ventajas de la creación de funciones. Cómo comprobar si existe una función: function_exists(). Clasificación: (1) en función de si recibe parámetros o no y (2) en función de si devuelve o no un valor.

18:53

Creación de una función básica: sin parámetros ni valor devuelto. Devolver valores con return. Cómo aceptar un parámetro. Varios parámetros, separando por ,. Parámetros opcionales. Argumentos variables, antes de PHP 5.6 y después. Parámetros por valor y por referencia.

13:24

Funciones variables. Ámbito de variables. Ámbito global. Palabra clave global. Variable predefinida $GLOBALS. Vida de variables locales. Palabra clave static.

12:37

Funciones anónimas. Tipo de dato callable. Implementación antes de PHP 5.3: mediante funciones variables o usando call_user_func().

Examen de cómo crear funciones
10 questions
14:20

Unidad con tres ejercicios.

15:58

Continuación de los ejercicios resueltos.

14:29

Continuación de los ejercicios resueltos.

Section 5: Ficheros
11:13

Comprobaciones: si un fichero existe, file_exists(); si es un directorio, is_dir(); si es un fichero regular, is_file(); si tenemos permisos de lectura, is_readable(); si tenemos permisos de escritura, is_writable(). Obteniendo el nombre del directorio dirname(). Obteniendo el tamaño de un fichero en bytes: filesize().

10:23

Copiar un fichero a otra ruta: copy(). Renombrar —mover— un fichero: rename(). Eliminar un fichero: unlink(). Crear un directorio: mkdir(). Eliminar un directorio vacío: rmdir(). Comprobando espacio de una unidad: disk_free_space() y disk_total_space().

11:40

Métodos de lectura de ficheros sin recursos: file_get_contents() para leer el contenido de un archivo; file() para obtener el contenido de un archivo en un array —un elemento por línea; readfile() para volcar en la salida el contenido de un fichero.

10:03

Escribir en un fichero: file_put_contents(). Wrappers (envolturas). Wrappers predeterminados. stream_get_wrappers() para conocer los disponibles.

16:47

Concepto de recurso (tipo de dato resource). Conocer el tipo de recurso: get_resource_type(). Concepto de cursor. Trabajando con ficheros usando recursos. Ventajas de esta operativa. Abrir un fichero: fopen(). Modos de apertura con fopen(). Cierre y liberación de recurso, con fclose(). Comprobación de final de fichero: feof(). Leer n bytes: fread(). Obtener una línea (hasta \n): fgets(). Una línea, limpiando etiquetas HTML y PHP: fgetss(). Obtener un solo carácter: fgetc().

11:33

Escribir en un fichero: fwrite(). Mover el cursor: fseek(). Reiniciar cursor: rewind(). Consultar posición del cursor: ftell().

10:32

Wrapper php://. Qué es el modo CLI (Command Line Interface). Paso de parámetros a aplicaciones CLI. Variables predefinidas en CLI: $argc (contador de parámetros) y $argv (valor de parámetros). Función que analiza los parámetros: getopt().

18:38

Entrada y salida estándar: stdin, stdout y stderr. Acceso a la Entrada/Salida estándar desde CLI: php://stdin, php://stdout y php://stderr. Constantes de E/S: STDIN, STDOUT y STDERR. Entrada POST sin procesar: php://input. Buffer de salida estándar: php://output. Fichero temporal en memoria: php://memory. Fichero temporal, quizás en disco: php://temp. Obtener un fichero temporal: tmpfile(). Obtener un nombre único y temporal: tempnam(). Filtros de acceso a contenido de ficheros: php://filter.

Examen ficheros
10 questions
16:19

Unidad con dos ejercicios.

Section 6: Imágenes
13:54

Bibliotecas para el manejo de imágenes. Biblioteca libgd. Crear una imagen vacía: imagecreatetruecolo(). Liberar recurso de una imagen: imagedestroy(). Crear recursos gd a partir de una imagen existente. Mostrar por pantalla o guardar en disco una imagen. Funciones de salida de imágenes. Introducción a la función header(). Consultar ancho y alto de una imagen: imagesx() e imagesy().

16:34

Copiar y/o recortar una imagen sin cambiar tamaño: imagecopy(). Copia, escala y recorta una imagen: imagecopyresampled(). Rotar una imagen un número determinado de grados: imagerotate(). Desde PHP 5.5, voltear una imagen: imageflip(). Aplicar un filtro gráfico a una imagen: imagefilter().

10:43

Definición de colores RGB, con imagecolorallocate(). Consultar y analizar un color: imagecolorat() y imagecolorsforindex(). Asignar un color a un determinado pixel x,y: imagesetpixel(). Escribir texto usando una fuente TTF: imagettftext(). Orden en los cambios.

14:46

Trazar una línea recta: imageline(). Rectángulo relleno, con imagefilledrectangle(). Elipse rellena, con imagefilledellipse(). Polígono con relleno, imagefilledpolygon(). Arco con relleno, imagefilledarc(). Figuras sin relleno, con imagearc(), imageellipse(), imagepolygon e imagerectangle(). Establecer grosor de trazo: imagesetthickness().

Examen imágenes
9 questions
Section 7: HTTP y mail
12:09

Recordatorio de HTTP. Una petición HTTP contiene cabeceras y contenido. Concepto de cabeceras y ejemplos. Función header() para establecer una cabecera. Cómo realizar una redirección. Constructores exit y die.

10:28

Mostrar un error 404, página no encontrada. Establecer el tipo de contenido devuelto. Ejemplos de tipos de contenido. Forzar la descarga de un recurso.

18:31

Formularios en HTML. Elementos de un formulario. Formularios enviados mediante el método HTTP GET. Variable global $_GET. Formularios enviados mediante el método HTTP POST. Variable global $_POST.

13:20

Elementos de tipo texto. Áreas de texto. Menús desplegables (select). Botones radio. Casillas de verificación. Wrapper php://input. Integración de arrays y formularios.

19:51

Elemento de carga de fichero. Cómo debe ser un formulario para el envío de ficheros. Variable global $_FILES: campos que contiene cada elemento del mismo. Obteniendo el fichero temporal subido por el usuario: move_uploaded_file(). Trabajando con permisos de escritura. Ajustes de php.ini que afectan al funcionamiento de la carga de ficheros.

Examen HTTP y mail
10 questions
16:09

Problemática. Solución mediante claves por URL. Concepto de cookie. Características de las cookies. Función para asignar una cookie: setcookie(). Variable global para consultar el valor de una cookie: $_COOKIE.

14:26

Ejemplo: plataforma de identificación de usuarios. Ejemplo: reconociendo al usuario. Asegurando el código mediante funciones hash. Cierre de sesión (eliminar una cookie).

11:28

Problemática. Variables de sesión. Función para comenzar una sesión: session_start(). Nombre predeterminado: PHPSESSID. Modificar el nombre. Variable predeterminada $_SESSION.

11:32

Tipos de datos aceptados en sesiones. Eliminar datos de sesión, mediante unset. Cookies vs Sesiones.

11:23

Función mail() para el envío de correos electrónicos. Estructura del parámetro $to. Estructura del parámetro $subject. Campo $message: texto plano o HTML. Estructura y contenido del parámetro $additional_headers. Correos más complejos: bibliotecas externas. Ejemplo básico. Ejemplo avanzado.

Examen cookies, sesiones y mail
10 questions
12:21

Unidad con cuatro ejercicios.

18:47

Continuación de los ejercicios resueltos.

11:45

Continuación de los ejercicios resueltos.

Section 8: Final
15:30

Enumeración de contenidos aprendidos. Lista de conceptos pendientes de aprendizaje: modelo de objetos de PHP —objetos, clases, clases abstractas, interfaces, traits; espacios de nombres; extensiones —pear, phar, composer; expresiones regulares; SQL; XML y JSON; API REST; Sistema de excepciones; cURL; depuración con xdebug; servicios web; memoria caché; biblioteca PHP estándar; streams y contextos.

Section 9: Apéndices
19:37

Breve introducción a las bases de datos. Breve introducción al lenguaje SQL. Gestor de bases de datos relacionales MySQL. Conectar, mediante mysqli_connect(). Controlar errores de conexión, mediante mysqli_connect_errno() y mysqli_connect_error(). Cierre de conexión, mediante mysqli_close(). Enviar una consulta y obtener el resultado devuelto: mysqli_query(). Número de filas devueltas por una consulta: mysqli_num_rows(). Obtener todas las filas del resultado de una consulta: mysqli_fetch_all(). Obtener una fila en un array: mysqli_fetch_array(). Prevención de ataques de inyección SQL: mysqli_real_escape_string(). Consultar último ID insertado: mysqli_insert_id(). Conocer el número de filas afectadas por una consulta: mysqli_affected_rows(). Interfaces MySQL: interfaz MySQLi, interfaz MySQL original (obsoleta) y PDO_MySQL de la biblioteca PDO. Drivers MySQL.

17:44

Software servidor web. Características que comparten los servidores web de producción. Servidor web Apache. Integración entre PHP y Apache. Fichero de configuración local .htaccess. Control de acceso mediante autenticación HTTP: .htpasswd. Reescritura de URL: mod_rewrite. Ejemplo e integración con PHP.

16:53

Por qué son necesarias las compañías de hosting. En qué parámetros debemos fijarnos al contratar un alojamiento: soporte de PHP, php.ini, bases de datos, acceso FTP, acceso SSH, espacio, tráfico, dominios, etc. Tipos de alojamientos: compartido de un dominio, compartido multidominio, virtual, dedicado. Acceso FTP (FTPS y SFTP). Clientes de FTP. Acceso SSH. Dominios y servidores web. Mapeo local de dominios: ventajas. Fichero /etc/hosts.

Students Who Viewed This Course Also Viewed

  • Loading
  • Loading
  • Loading

Instructor Biography

Jesús Ruiz-Ayúcar, Ingeniero Informático

Soy Ingeniero Técnico en Informática de Sistemas. Comencé trabajando en la universidad, en el grupo, antes de finalizar mis estudios. Al acabar, formé parte del equipo de diversas empresas startup, hasta que en 2009 comencé a ejercer de profesional autónomo freelance especializado en desarrollo web, bajo mi propia marca:. Desde entonces, he realizado tiendas online, páginas web promocionales para grandes multinacionales, aplicaciones de gestión online, sitios web institucionales, formación a medida en distintos CMS (Wordpress, Joomla!), software de gestión de eventos, páginas centrada en la accesibilidad, etc.

Las tecnologías con las que me siento más cómodo son PHP (de la que soy traductor oficial), JavaScript, jQuery, HTML5 y CSS3. Disfruto mucho tanto aprendiendo a utilizar nuevas herramientas como enseñando a usarlas (¡No hay mejor forma de aprender que enseñar!).

Sobre mi vida extraprofesional, disfruto muchísimo del campo y la jardinería; leyendo sobre física o geografía; viajando; probando cocinas del mundo; jugando con perros; escuchando música; viendo cine, mayormente de ciencia ficción y de terror; y, por supuesto, conociendo nuevas personas y puntos de vista.

Puedes saber más acerca de mí visitando mi Twitter,

Ready to start learning?
Take This Course