0

它有点难以理解。

在 header.php 我有这个代码:

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

我使用此变量 $link --> 12345678 获取 ID,使用 $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;
  } 

通常它会打印出网址..但是,我无法理解代码..

4

1 回答 1

1

它是以一种奇怪的方式编写的,但基本上downloadLink()是这样的:

  1. 从下载 HTMLhttp://www.example.com/<ID>/go.html
  2. <iframe获取 HTML,并在字符串出现的每个点拆分它。
  3. 现在获取 HTML 中第一个 之后的所有内容,并在字符串出现<iframe的每个点将其拆分。src="
  4. 现在把第一个之后的所有东西都拿走,然后在出现src="的每个点上拆分它"
  5. 返回第一个之前"的任何内容。

所以这是一种非常糟糕的方法,但它实际上会在 HTML 代码中查找第一次出现的 this:

<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];
}
于 2010-04-01T20:03:01.083 回答