Récupérer url de destination dans une variable

WRInaute discret
KOogar a dit:
Dans le genre j'avais fait celui la :
http://www.phpsources.org/scripts303-PHP.htm

Mais ca me parait tordu d'aller chercher une url sur son propre site avec un fopen, j'aimerai bien comprendre ce que tu essayes de faire pillets

En effet comme le dit manthoR ce n'est pas mon propre site. J'ai vu ton script mais ce n'est pas exactement cela que je cherchais. Trouver des urls dans un texte, je sais le faire mais trouver l'url du fichier en question c'est un peu plus compliquer quand le fichier se trouve sur un serveur distant.

manthoR a dit:
ben une fois que t'as fait le open tu explore le contenu pour trouver l'url :

Exemple ici :
http://www.graphiks.net/cours/php/20-le ... place.html

à la place du titre /titre recherche l'endroit ou est écrite l'url de redirection

Le problème c'est que ce ne sera pas simplement des fichiers html mais parfois d'autres fichiers à télécharger genre .zip .exe etc...

Donc je souhaite savoir comment est-ce possible en php de connaitre l'url de destination sans avoir besoin d'ouvrir (ou sans ouvrir complètement) le fichier car si par exemple c'est un fichier .zip qui fait plusieurs megas, je risque d'attendre longtemps.

par exemple lorsque je tape l'adresse http://www.example.com/redirect.php?id=12345 si c'est un fichier téléchargeable la boite de dialogue s'ouvre et affiche

6ym0u9f.jpg


J'aimerais pouvoir donc récuperer serveur1.example.com et l'afficher avec echo.
 
WRInaute accro
ok

je comprend nettement mieux, donc un fopen sur le fichier et download les 300 premiers carateres et ca devrait suffir. ensuite test ta chaine:

Code:
<?php

$tags = array("<html>","<head>","<div>","<h1>","<table>");
while ($j<sizeof($tags)) {
$pattern = "#<(.*?)>#ie";
if (preg_match("$pattern", $ta_chaine_de_300_carateres, $retour)) {
echo $retour[0];
}
$j++;
}
?>

Si aucun tag n'est trouvé, ca doit pas être une page web ;)
 
WRInaute discret
KOogar a dit:
ok

je comprend nettement mieux, donc un fopen sur le fichier et download les 300 premiers carateres et ca devrait suffir. ensuite test ta chaine:

Code:
<?php

$tags = array("<html>","<head>","<div>","<h1>","<table>");
while ($j<sizeof($tags)) {
$pattern = "#<(.*?)>#ie";
if (preg_match("$pattern", $ta_chaine_de_300_carateres, $retour)) {
echo $retour[0];
}
$j++;
}
?>

Si aucun tag n'est trouvé, ca doit pas être une page web ;)

Si je fais un fopen du fichier, ça ouvre directement le fichier ( un zip par exemple) , et ça m'affiche le début du contenu du fichier zip, donc des caractères incompréhensibles.

Mais en cherchant sur php.net j'ai trouvé un exemple de ce que je cherchais :

Code:
<?php
$url = 'http://www.example.com/redirecting_page.php';

$fp = fopen($url, 'r');

/* Avant PHP 4.3.0 utilisez $http_response_header
   au lieu de stream_get_meta_data() */
$meta_data = stream_get_meta_data($fp);
foreach($meta_data['wrapper_data'] as $response) {

  /* Redirections? */
  if (substr(strtolower($response), 0, 10) == 'location: ') {
    /* modification de $url avec la nouvelle URL */
    $url = substr($response, 18);
  }

}

?>

Merci à vous
 
WRInaute accro
>> Si je fais un fopen du fichier, ça ouvre directement le fichier ( un zip par exemple) , et ça m'affiche le début du contenu du fichier zip, donc des caractères incompréhensibles.

c'etait le but de mon ptit bout de code de détecter si le fichier est zip ou non, mais c'est pas grave puisque tu as trouvé ton bonheur en passant pas la lecture des en-têtes. :wink:

Bon Dimanche !
 
WRInaute discret
KOogar a dit:
>> Si je fais un fopen du fichier, ça ouvre directement le fichier ( un zip par exemple) , et ça m'affiche le début du contenu du fichier zip, donc des caractères incompréhensibles.

c'etait le but de mon ptit bout de code de détecter si le fichier est zip ou non, mais c'est pas grave puisque tu as trouvé ton bonheur en passant pas la lecture des en-têtes. :wink:

Bon Dimanche !

Merci bon Dimanche à toi aussi.
 
Discussions similaires
Haut