2013-02-22 3 views
2

Je veux une fonction de redirection url rediriger dans le PHP tel que http://www.wheregoes.com/.navigateur web script PHP

Je veux détecter quatre types de redirections:

  • Http 301 redirigent
  • Http 302 redirigent
  • balise meta redirect
  • JavaScript à

Si je CURL, Je peux facilement détecter 301, redirection 302, mais il est difficile de détecter les deux autres redirections.

donc je veux un navigateur web scriptable, je vais utiliser une bibliothèque comme ci-dessous:

$browser = Browser::createBrowser('chrome'); 
$delay = 10; // (This is a important parameter for detecting javascript or meta tag redirection). 

$browser->load($url, $delay, function onLoadComplete($arr_track_url){ 
    print_r($arr_track_url); 
}); 

J'ai cherché et a couru dans certaines bibliothèques telles que http://www.simpletest.org/en/browser_documentation.html, mais ils ne supportent pas le javascript et redirect balise meta.

Existe-t-il un navigateur script PHP? Ou puis-je détecter facilement la javascript ou la redirection de métabalises?

+0

duplication possible de [Émulation non-navigateur de JavaScript - est-ce possible?] (Http://stackoverflow.com/questions/1768717/non- browser-emulation-of-javascript-is-it-possible) –

+0

['' les balises sont encore faciles] (http://php.net/manual/fr/function.get-meta-tags.php), redirections JavaScript sont assez difficiles. –

+0

Je pense que l'émulation de non-navigateur est trop lourde pour ma demande. Parce que je ne veux pas analyser le CSS, dessiner html et ainsi de suite. Je n'ai besoin que de la redirection de html. Y a-t-il une solution sympa pour ça? –

Répondre

2

Si je comprends bien, vous voulez savoir où un lien finalement conduit, si cet URL final diffère de l'URL cliqué en premier lieu?

Si oui, je pense que la meilleure approche est de laisser le navigateur faire son travail et loko après où il est sorti. De cette façon, vous obtenez exactement le comportement «normal» d'un navigateur, pas celui d'une bibliothèque.

Utilisez un iframe (caché) dans lequel vous chargez l'URL. Ensuite, attendez un événement window.load ou quelque chose et interrogez l'emplacement des documents par la suite. Je n'ai pas essayé cela maintenant, mais me semble faisable ...

+0

Je pense aussi qu'il ne peut pas résoudre un code de bibliothèque si facilement. Mais comment puis-je une instance de navigateur interactif avec PHP? –

+0

Eh bien pas sûr de ce que vous appelez avec «bibliothèque» ... Mais il fait certainement tout ce qu'un navigateur ferait et cela devrait être la cible finale. Ou ai-je mal compris votre question? – arkascha

+0

Je veux développer un site comme http://www.wheregoes.com/ avec php, mais il ne supporte pas la redirection meta tag et javascript. Comment puis-je détecter toute la redirection du côté serveur? –