2010-04-01 3 views
0

его немного сложно понять.PHP Explode и Get_Url: не отображается URL-адрес

в header.php у меня есть этот код:

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

я получаю удостоверение личности с этой переменной $ ссылке -> 12345678 и $ URL я получаю полную ссылку с functions.php

в functions.php у меня есть этот фрагмент

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; 
    } 

и обычно она печатает URL из .. но я не могу понять код ..

+0

Откуда происходит get_url()? – rogeriopvl

+0

Этот код беспорядок, никто не коснется его 6-футовым полюсом. – animuson

ответ

1

Это написано в своего рода странным образом, но в основном то, что downloadLink() делает это:

  1. Загрузить HTML из http://www.example.com/<ID>/go.html
  2. Возьмите HTML, и разбить его в каждой точке, где происходит строка <iframe.
  3. Теперь возьмите все, что появилось после , сначала<iframe в формате HTML и разделите его в каждой точке, где появляется строка src=".
  4. Теперь возьмите все после первого src=" и разделите его в каждой точке, где появляется ".
  5. Возврат любого из до первый ".

Так что это довольно плохой способ сделать это, но эффективно это выглядит для первого вхождения этого в HTML-коде:

<iframe src="<something>" 

И возвращает <something>.

Edit: другой способ, как это предусмотрено в комментарии:

Там на самом деле не какой-либо конкретной «правильный» способ сделать это, но довольно простой способ был бы изменить его к этому:

function downloadlink ($d_id) 
{ 
    $html = @get_url ('' . 'http://www.example.com/' . $d_id . '/go.html'); 
    preg_match('/\<iframe src="(.+?)"/', $html, $matches); 
    return $matches[1]; 
} 
+0

благодарим вас за ответ, обычно он берет url в iframe .. как я могу получить его правильно? – elmaso

+0

Как я могу напечатать URL? с: ? – elmaso

+0

Да, это должно быть сделано. –