Ver Mensaje Individual
  #16 (permalink)  
Antiguo 11/05/2012, 16:31
Avatar de emprear
emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 5 meses
Puntos: 1567
Respuesta: ¿Cómo saber si una url "ajena" devuelve 404?

Si decís que ese sistema te funciona, perfecto, usalo, solo te aclaro que si fopen() no encuentra la url, devuelve false, más alla de que alguna directiva del server te rediriga a otra parte con un status 404, si querés evita los 301, etc, haces

Código PHP:
Ver original
  1. <?php
  2. $url = 'http://foros.emprear.com/html/word-wrap-en-celdas/word-wrap-en-celdas.html';
  3. $opts = array(
  4.        'http' => array('method' => 'GET',
  5.                        'max_redirects' => '1') // 1 ó menor evita cualquier redirección
  6.        );
  7. $context = stream_context_create($opts);
  8. $stream = fopen($url, 'r', false, $context);
  9.  if($stream !== false){
  10.  echo "existe";
  11.  }else{
  12.  echo "no existe";
  13.  }
  14. fclose($stream);
  15. ?>

Te pongo ejemplos concretos
En mi .htaccess tengo
Código Apache:
Ver original
  1. Redirect 301 /html/word-wrap-en-celdas/word-wrap-en-celdas.html http://foros.emprear.com/css/word-wrap-en-celdas-css/

Es decir
http://foros.emprear.com/html/word-w...en-celdas.html
NO existe, el htaccess redirije al otro.
Proba la script incrementando el valor 1 a 2, ahi si te va a decir que existe porque hizo la redirección. mientras esté en 1, fopen retorna false

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.