0

我怎样才能获得我已经搜索过谷歌并阅读了一些教程但似乎无法理解的 URL 的某个部分,也许有人可以从下面的示例中向我展示。

这是我的代码

<?php

include "simple_html_dom.php";

$title = "fast";

$html = file_get_html("http://www.imdb.com/find?q=".urlencode($title)."&s=all");
$element = $html->find('[class="result_text"] a', 1);
$link = $element->href;
echo $link;

// Clear dom object
$html->clear(); 
unset($html);

?>

现在这回响

/title/tt0109772/?ref_=fn_al_tt_2

但我只想要 imdb id。

tt0109772

所以有人可以解释或告诉我如何做到这一点

谢谢

4

5 回答 5

1

如果它总是子目录:

echo basename(dirname($link));
于 2014-03-03T16:34:45.330 回答
1

你可以使用explode()

$str = "/title/tt0109772/?ref_=fn_al_tt_2"; 
$arrUrl = explode("/",$str);
$id = $arrUrl[2];
echo $id;

演示

于 2014-03-03T16:38:06.793 回答
0

你可以explode像这样使用:

$parts = explode("/", $url);

这会将 URL 拆分为数组。然后检查你想要什么索引..并得到它:

$id = $parts[3];

您可以使用以下命令进行调试:print_r($parts);

于 2014-03-03T16:34:52.213 回答
0

不是最优雅的方式,但

$link = '/title/tt0109772/?ref_=fn_al_tt_2';
$imdb_id = explode('/', $link);
$imdb_id = $imdb_id[2];
echo $imdb_id;

将工作。

于 2014-03-03T16:35:03.597 回答
0

试试这个代码:(来源

$path = parse_url($url, PHP_URL_PATH);
$segments = explode('/', $path);

然后我认为您需要$segments[1]获取 IMDB id。

于 2014-03-03T16:36:31.917 回答