http://
https://
http:// -- https:// — Acceso a URLS en HTTP(s)
Descripción
Permite acceso de lectura a ficheros/recursos mediante HTTP 1.0,
utilizando el método GET de HTTP. Junto con la petición, se envía una cabecera
Host:
para así poder usar hosts virtuales basados en nombres. Si se ha definido
un user_agent en el fichero
php.ini o en el contexto del flujo, éste se incluirá también en la
petición.
El flujo proporciona acceso al cuerpo del
recurso; las cabeceras se guardan en la variable
$http_response_header.
Si fuera importante conocer la URL del recurso del que procede
el documento (tras procesar todas las redirecciones),
se deberán procesar todas las cabeceras de respuesta devueltas por
el flujo.
Se usará la directiva from en la cabecera
From:
siempre que esté asignado y no se sobrescriba por
Opciones y parámetros de contexto.
Uso
- http://ejemplo.com
- http://ejemplo.com/fichero.php?var1=val1&var2=val2
- http://usuario:contraseña@ejemplo.com
- https://ejemplo.com
- https://ejemplo.com/fichero.php?var1=val1&var2=val2
- https://usuario:contraseña@ejemplo.com
Opciones
Resumen de la Envoltura
Atributo |
Permitido |
Restringido por allow_url_fopen |
Sí |
Permite Lecturas |
Sí |
Permite Escrituras |
No |
Permite Añadir contenidos |
No |
Permite Lecturas y Escrituras Simultáneas |
N/A |
Permite usar la función stat() |
No |
Permite usar la función unlink() |
No |
Permite usar la función rename() |
No |
Permite usar la función mkdir() |
No |
Permite usar la función rmdir() |
No |
Ejemplos
Ejemplo #1 Detectar la URL en la que se finaliza tras las redirecciones
<?php
$url = 'http://www.example.com/redirecting_page.php';
$fp = fopen($url, 'r');
$meta_data = stream_get_meta_data($fp);
foreach ($meta_data['wrapper_data'] as $response) {
/* Were we redirected? */
if (strtolower(substr($response, 0, 10)) == 'location: ') {
/* update $url with where we were redirected to */
$url = substr($response, 10);
}
}
?>
Notas
Nota:
Sólo habrá soporte para HTTPS cuando la extensión openssl
esté habilitada.
Las conexiones HTTP son de sólo lectura; no hay soporte para escribir
o copiar datos a un recurso HTTP.
Se pueden enviar peticiones POST y PUT, por ejemplo,
con ayuda de los Contextos HTTP.