Introducción profesional a PHP
4.2 (31 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.
425 students enrolled
Wishlisted Wishlist

Please confirm that you want to add Introducción profesional a PHP to your Wishlist.

Add to Wishlist

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 (31 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.
425 students enrolled
Last updated 9/2014
Spanish
Current price: $10 Original price: $20 Discount: 50% off
1 day left at this price!
30-Day Money-Back Guarantee
Includes:
  • 15.5 hours on-demand video
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
Have a coupon?
What Will I Learn?
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.
View Curriculum
Requirements
  • Es recomendable tener conocimientos básicos de HTML
  • Un equipo de escritorio (Windows, Mac, Linux) con permisos para instalar el sofware que utilicemos
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.

Who is the target audience?
  • Estudiantes de ciclos formativos o universitarios
  • Profesionales que necesitan adquirir nuevas competencias
  • Autodidactas interesados en el desarrollo web
Students Who Viewed This Course Also Viewed
Curriculum For This Course
Expand All 68 Lectures Collapse All 68 Lectures 15:24:01
+
Introducción
4 Lectures 48:23

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.

Preview 10:18

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.

HTTP
11:21

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.

Programación en cliente vs servidor
06:45

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.

Qué es PHP
19:59

Examen introducción
11 questions
+
Sintaxis de PHP
14 Lectures 02:52:46

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.

Sintaxis básica
11:28

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.

Variables I
17: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.

Variables II
12:38

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__.

Variables III
16:07

Unidad con cuatro ejercicios.

En práctica
13:39

Examen variables
11 questions

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

Operadores
12:04

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

Operadores II
11:37

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

Condicionales
11:29

Varios elseif. Sentencia switch. Sintaxis alternativa.

Condicionales II
09:07

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.

Bucles
08:38

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

Bucles II
13:44

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.

Dividir en ficheros
12:47

Examen flujo de control
10 questions

Unidad con cinco ejercicios.

En práctica
13:05

Continuación de los ejercicios resueltos.

En práctica II
08:45
+
Funciones
13 Lectures 03:02:05

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.

Funciones del sistema
11:11

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.

Funciones numéricas
19:52

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().

Funciones de texto
12:23

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().

Funciones de texto II
09:20

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.

Funciones de HTML y HTTP
16:42

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

Funciones avanzadas de texto
08:06

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().

Funciones avanzadas de texto II
13:09

Examen de funciones I
10 questions

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.

Funciones de arrays I
17:40

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.

Funciones de arrays II
14:14

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.

Funciones de fechas
07:09

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.

Funciones de fechas II
14:02

Examen de funciones II
10 questions

Unidad con cuatro ejercicios.

En práctica
18:28

Continuación de los ejercicios resueltos.

En práctica II
19:49
+
Crear funciones
7 Lectures 01:35:48

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.

Introducción de funciones
06:07

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.

Introducción de funciones II
18:53

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

Ámbito de variables y funciones anónimas
13:24

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

Ámbito de variables y funciones anónimas II
12:37

Examen de cómo crear funciones
10 questions

Unidad con tres ejercicios.

En práctica
14:20

Continuación de los ejercicios resueltos.

En práctica II
15:58

Continuación de los ejercicios resueltos.

En práctica III
14:29
+
Ficheros
9 Lectures 01:57:08

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().

Introducción ficheros
11:13

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().

Introducción ficheros II
10:23

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.

Leyendo y escribiendo ficheros
11:40

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

Leyendo y escribiendo ficheros II
10:03

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().

Trabajando con recursos
16:47

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

Trabajando con recursos II
11:33

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().

El wrapper php://
10:32

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.

El wrapper php:// II
18:38

Examen ficheros
10 questions

Unidad con dos ejercicios.

En práctica
16:19
+
Imágenes
4 Lectures 55:57

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().

Introducción a las imágenes
13:54

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().

Introducción a las imágenes II
16:34

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.

Creación de textos y formas
10:43

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().

Creación de textos y formas II
14:46

Examen imágenes
9 questions
+
HTTP y mail
13 Lectures 03:02:10

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.

Header
12:09

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.

Header II
10:28

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.

Formularios
18:31

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.

Formularios II
13:20

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.

Carga de ficheros por HTTP
19:51

Examen HTTP y mail
10 questions

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.

Cookies
16:09

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).

Cookies II
14:26

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

Sesiones
11:28

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

Sesiones II
11:32

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.

Envío de emails
11:23

Examen cookies, sesiones y mail
10 questions

Unidad con cuatro ejercicios.

En práctica
12:21

Continuación de los ejercicios resueltos.

En práctica II
18:47

Continuación de los ejercicios resueltos.

En práctica III
11:45
+
Final
1 Lecture 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.

Unidad final
15:30
+
Apéndices
3 Lectures 54:14

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.

Preview 19:37

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.

Consejos con Apache
17:44

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.

Alojamiento de páginas web
16:53
About the Instructor
Jesús Ruiz-Ayúcar
4.2 Average rating
31 Reviews
425 Students
1 Course
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,