Created: 2025-01-30 jue 19:05
https://alvarogonzalezsotillo@gitlab.com/alvarogonzalezsotillo/apuntes-clase-ejemplos-php.git
https://www.php.net/manual/es/language.variables.basics.php
$__https://www.php.net/manual/es/language.types.php
https://www.php.net/manual/es/language.types.string.php
\\ y ' se escapan con \. Todos los demás no se escapan.| Secuencias de escape de cadenas | |
|---|---|
\n |
avance de línea (LF o 0x0A (10) en ASCII) |
\r |
retorno de carro (CR o 0x0D (13) en ASCII) |
\t |
tabulador horizontal (HT o 0x09 (9) en ASCII) |
\v |
tabulador vertical (VT o 0x0B (11) en ASCII) (desde PHP 5.2.5) |
\e |
escape (ESC o 0x1B (27) en ASCII) (desde PHP 5.4.4) |
\f |
avance de página (FF o 0x0C (12) en ASCII) (desde PHP 5.2.5) |
\\ |
barra invertida |
\$ |
signo de dólar |
\" |
comillas dobles |
\999 |
Caracter en octal |
\xFF |
caracter hexadecimal |
\u{FFFF} |
Caracter unicode |
$nombre = "María";
echo <<<EOT
Mi nombre es "$nombre".
Esto debería mostrar una 'A' mayúscula: \x41
EOT;
$nombre = "María";
echo <<<'EOT'
Mi nombre es "$nombre".
Esto debería mostrar una 'A' mayúscula: \x41
EOT;
https://www.php.net/manual/es/language.constants.php
https://www.php.net/manual/es/reserved.constants.php
define(NOMBRE, valor)$constant(NOMBRE)https://www.php.net/manual/es/language.control-structures.php
if( CONDICION ){
SI ES CIERTO
}
else{
SI ES FALSO
}
Ejercicio: si la multiplicación de dos variables es mayor de 50, muestra el resultado con fondo rojo. Si no, el fondo será transparente
while(CONDICION){
SENTENCIAS QUE SE REPITEN
DEBERIA CAMBIARSE LA CONDICION
}
Ejercicio: muestra un tablero de ajedrez, con tantas filas y columnas como se diga en dos variables
for (EXPR1; EXPR2; EXPR3){
SENTENCIA
}
Es equivalente a un bucle while
EXPR1;
while (EXPR2){
SENTENCIA
EXPR3
}
Ejercicio: Muestra todas las imágenes de https://www.glerl.noaa.gov/data/ice/max_anim/png, desde 1973 a 2024.
Ejercicio: Muestra todas las imágenes de https://jareksastro.org/astro/, desde m0 a m23.
$array = [
"foo" => "bar",
"bar" => "foo",
];
$alumnos = [
"Pepe",
"María",
"Juan",
"Susana"
];
$alumnos = [
"Pepe",
"María",
"Juan",
"Susana"
];
foreach($alumnos as $alumno){
print( "Alumno: $alumno" )
}
foreach($alumnos as $posicion => $alumno){
print( "Alumno $posicion: $alumno" )
}
Ejercicio: muestra las siguientes imágenes de https://astro.uni-bonn.de/~ithies/images/Planet_Formation_Illustrated/PNG/ en una página web:
annulus1.png |
annulus2.png |
ejection1.png |
ejection2.png |
ejection3.png |
encounter1.png |
encounter2.png |
formation1.png |
formation2.png |
formation3.png |
formation4.png |
formation5.png |
formation6.png |
formation7.png |
formation8.png |
formation9.png |
inclined1.png |
inclined2.png |
inclined3.png |
inclined4.png |
kozai1.png |
kozai2.png |
kozai3.png |
rmleffect1.png |
rmleffect2.png |
system1.png |
system2.png |
continuefor( $i = 0 ; $i < 10 ; $i += 1 ){
if( $i % 3 != 0 ){
continue;
}
echo( "$i es múltiplo de 3\n");
}
include, requireinclude: Si el fichero no existe, provoca un warningrequire: Si el fichero no existe, provoca un errorinclude_once, require_once: Si ya ha sido incluido, no se vuelve a incluirhttps://www.php.net/manual/en/language.exceptions.php
throw, no con errores generales.mysqli<?php
function inverso($x) {
if (!$x) {
throw new Exception('División por cero.');
}
return 1/$x;
}
try {
echo inverso(5) . "\n";
echo inverso(0) . "\n";
}
catch (Exception $e) {
echo 'Excepción capturada: ', $e->getMessage(), "\n";
}
finally{
echo 'Esto ocurre haya o no haya pasado por catch\n';
}
https://www.php.net/manual/es/language.functions.php
<?php
function foo($arg_1, $arg_2, /* ..., */ $arg_n)
{
echo "Función de ejemplo.\n";
return $valor_devuelto;
}
?>
https://www.php.net/manual/es/language.variables.scope.php
$a = 3; // GLOBAL
function fun1(){
echo $a; // ERROR, VARIABLE NO DEFINIDA
}
function fun2(){
global $a;
echo $a; // IMPRIME 3
}
function fun3(){
$a = 4
echo $a; // IMPRIME 4
echo $GLOBALS["a""]; // IMPRIME 3
}
Nota: para $GLOBALS ver Variables predefinidas
es_capicuaes_primofunction incrementa($variable, $valor){
$variable += $valor;
}
$unavariable = 3;
incrementa($unavariable, 4);
echo $unavariable; // IMPRIME 3
function incrementa(&$variable, $valor){
$variable += $valor;
}
$unavariable = 3;
incrementa($unavariable, 4);
echo $unavariable; // IMPRIME 7
class Persona {
public $nombre;
public function __construct($nombre) {
$this->nombre = $nombre;
}
}
function cambiarNombre($persona) {
$persona->nombre = "Carlos";
}
$persona1 = new Persona("Ana");
cambiarNombre($persona1);
echo $persona1->nombre; // Imprime "Carlos", no "Ana"
phpinfo |
htmlspecialchars |
parse_url |
explode, explode |
strpos, substr, trim |
strtolower, strtoupper |
filter_var |
php-xdebugvar_dumperror_reportingissetis_numeric, is_array, is_nanphp.ini:
display_errorsdisplay_startup_errorslog_errors
<?php
$url = 'http://username:password@hostname:9090/path?arg=value#anchor';
var_dump(parse_url($url));
var_dump(parse_url($url, PHP_URL_SCHEME));
var_dump(parse_url($url, PHP_URL_USER));
var_dump(parse_url($url, PHP_URL_PASS));
var_dump(parse_url($url, PHP_URL_HOST));
var_dump(parse_url($url, PHP_URL_PORT));
var_dump(parse_url($url, PHP_URL_PATH));
var_dump(parse_url($url, PHP_URL_QUERY));
var_dump(parse_url($url, PHP_URL_FRAGMENT));
?>
setcookie()$_COOKIEgetallheaders(): consigue todas las cabeceras enviadas por el cliente
Accept, Cache-Control, Content-Enconding…header(): Envía una cabecera en la respuesta HTTP
Content-Type, Location, Transfer-Encoding…LocationContent-Typehttps://www.php.net/manual/es/language.variables.predefined.php
$GLOBALS — Hace referencia a todas las variables disponibles en el ámbito global $_SERVER — Información del entorno del servidor y de ejecución $_GET — Variables HTTP GET $_POST — Variables POST de HTTP $_FILES — Variables de subida de ficheros HTTP $_REQUEST — Variables HTTP Request $_SESSION — Variables de sesión $_ENV — Variables de entorno $_COOKIE — Cookies HTTP
https://www.php.net/manual/es/tutorial.forms.php https://www.php.net/manual/es/language.variables.external.php
enctype="multipart/form-data"php.ini
file_uploadsupload_max_filesizeupload_tmp_dirpost_max_sizemax_input_time$_FILES contiene los ficheros subidoshttps://www.php.net/manual/es/book.session.php https://www.php.net/manual/es/session.examples.basic.php
$_SESSION es un array con valores, que pueden pasarse de una página a otrasession_start() se basa en cookies y ficheros en el servidor
PHPSESSIDSID en vez de cookiessession.save_pathsession_start();
if (!isset($_SESSION['count'])) {
$_SESSION['count'] = 0;
} else {
$_SESSION['count']++;
}
session_start();
unset($_SESSION['count']);
session_start();
session_destroy(); // esto no destruye $_SESSION
fetchXMLHttpRequestfetchconst response = await fetch("https://example.org/post", {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify({ username: "example" }),
});
const json = await response.json();
const form = document.getElementById("formulario");
const formData = new FormData(form);
const response = fetch( "./api.php", {
method: "POST",
body: formData
})
fetch( "./api/endpoint", {
method: "POST",
body: JSON.stringify({ username:"example", action:"create"} )
}).
then( async (response) =>{
const json = await response.json();
// PROCESAR EL JSON DE RESPUESTA
}).
catch( err => {
alert("Error:" + err );
console.err(err);
});
json_decode(): Convierte una cadena de JSON a un array de PHP.json_encode(): Convierte un array de PHP a una cadena JSON.<?php
$json = file_get_contents('php://input');
$request = json_decode($json, true);
// PROCESAR $request Y CREAR EL ARRAY DE RESPUESTA EN $response
header('Content-Type: application/json');
echo json_encode($response);
?>