2010-04-01 15 views
0

它的一點點難以理解。PHP爆炸和Get_Url:不顯示的網址

在header.php中

我有這樣的代碼:

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

我得到的ID與此變量$鏈接 - > 12345678 與$網址我從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; 
    } 

,通常它打印網址..但是,我無法理解的代碼..

+0

get_url()來自哪裏? – rogeriopvl 2010-04-01 20:00:07

+0

這段代碼亂七八糟,沒有人會用6英尺的杆子碰這個。 – animuson 2010-04-01 20:03:23

回答

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>

編輯:不同的方法,如要求在評論

有沒有真正的任何特定的「正確」的方式做到這一點,但一個相當簡單的方法是將它改成這樣:

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

謝謝你的回答,通常它需要在iframe中的URL ..我怎麼才能得到它正確的方式? – elmaso 2010-04-01 20:04:58

+0

如何打印網址?與: <? $ ID = $ link; $ url = downloadLink($ ID); ?> <?php echo $ url; ?>? – elmaso 2010-04-01 21:02:14

+0

是的,應該這樣做。 – 2010-04-01 21:04:56