Hola, estoy otra vez con mis dudas jej, estoy seguro de que es sencillo pero he probado lo que se me ha ocurrido y nada.
Estoy haciendo un script php para practirar y tengo esta funcion que te detecta y muestra la pagina a la que es redireccionada la introducida.
function checkredir($url) {
$da=fopen($url, 'r');
$meta_datos=stream_get_meta_data($da);
foreach($meta_datos['wrapper_data'] as $respuesta)
{
if (substr(strtolower($respuesta), 0, 10) == 'location: ')
{
$starturl=$url;
$finalurl=substr($respuesta, 10);
return $finalurl;
}
}
}
echo checkredir('$url_de_ejemplo');
Ahora pongo dos posibilidades:
Si defino $url_de_ejemplo como http://url.com/hola.php?id=2 y esta redirecciona a http://url.com/2.php pues me muestra http://url.com/2.php.
La otra opcion posible es que se quede como esta, por ejempo http://url.com/2.php, que me muestra nada.
Pues quiero que la funcion compruebe si redirecciona, y si no, te devuelva la inicial, por loq ue probe dejarlo asi
function checkredir($url) {
$da=fopen($url, 'r');
$meta_datos=stream_get_meta_data($da);
foreach($meta_datos['wrapper_data'] as $respuesta)
{
if (substr(strtolower($respuesta), 0, 10) == 'location: ')
{
$starturl=$url;
$finalurl=substr($respuesta, 10);
if($starturl!=$finalurl)
return $finalurl
else
return $starturl;
}
}
}
echo checkredir('$url_de_ejemplo');
Pero si no redirecciona no me muestra nada, espero haberme explicado bien.