Question

est un peu difficile à comprendre.

dans le header.php j'ai ce code:

<?
$ID = $link;
$url = downloadLink($ID);
?>

Je reçois l'ID à cette variable lien $ -> 12345678 et $ url je reçois le lien complet du functions.php

dans le functions.php i cet extrait

function downloadlink ($d_id)
  {
    $res = @get_url ('' . 'http://www.example.com/' . $d_id . '/go.html');
    $re = explode ('<iframe', $res);
    $re = explode ('src="', $re[1]);
    $re = explode ('"', $re[1]);
    $url = $re[0];
    return $url;
  } 

et, normalement, il imprime l'URL sur .. mais je ne peux pas comprendre le code ..

Était-ce utile?

La solution

Il est écrit en nature d'une façon étrange, mais au fond ce que downloadLink() fait est ceci:

  1. Télécharger le code HTML http://www.example.com/<ID>/go.html
  2. Prenez le HTML et le diviser à chaque point où la <iframe chaîne se produit.
  3. Maintenant, prenez tout ce qui est venu après la premier <iframe dans le code HTML, et divisé à chaque point où la src=" chaîne apparaît.
  4. Maintenant, prenez tout ce qui suit le premier src=" et diviser à chaque point où " apparaît.
  5. Retour tout ce qui était avant la première ".

Il est donc un moyen assez pauvre de le faire, mais effectivement il semble pour la première occurence de ce dans le code HTML:

<iframe src="<something>"

Et retourne le <something>.

Edit: une autre méthode, comme demandé dans le commentaire :

Il n'y a pas vraiment de « bonne » notamment de le faire, mais d'une manière assez simple serait de changer à ceci:

function downloadlink ($d_id)
{
    $html = @get_url ('' . 'http://www.example.com/' . $d_id . '/go.html');
    preg_match('/\<iframe src="(.+?)"/', $html, $matches);
    return $matches[1];
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top