我正在尝试在我的网站上制作imdb ratingchecker。 我到目前为止所以我可以使用URL的部分来查看评级并使用cURL + php + ajax / jQuery在我的页面上打印它。 但它只需要imdb-link的最后一部分正常运行并使用omdbapi.com的功能来剔除评级。
但如果用户输入http://www.imdb.com/title/tt2268016/则无效。 但如果用户只输入tt2268016,则该功能就像魅力一样。 所以我的问题是我不知道如何删除http://www.imdb.com/title/并离开tt2268016并使用它。
正在进行url处理的代码是这样的:
if (empty($_POST['imdbnum'])){
$imdb = 'none';
$imdblink = 'none';
}else{
$imdb = unesc($_POST['imdbnum']);
function get_movie_ratings($name)
{
$url = "https://omdbapi.com/?i=".urlencode($name);
// send request
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$curlData = curl_exec($curl);
curl_close($curl);
return json_decode($curlData, true);
}
$imdb2 = get_movie_ratings($imdb);
$imdbrate = $imdb2["imdbRating"];
$imdblink = unesc($_POST['imdbnum']);
}
我该如何顺利解决这个问题?
最诚挚的问候!
答案 0 :(得分:0)
最简单的方法是使用str_replace
删除多余的字符:
if (empty($_POST['imdbnum'])){
$imdb = 'none';
$imdblink = 'none';
} else {
$imdb = unesc($_POST['imdbnum']);
$imdb = str_replace('http://www.imdb.com/title/', '', $imdb);
$imdb = str_replace('/', '', $imdb);
}
要考虑更多种类的网址变体,您可以使用preg_match
:
if (empty($_POST['imdbnum'])){
$imdb = 'none';
$imdblink = 'none';
} else {
$imdb = unesc($_POST['imdbnum']);
if (preg_match('/tt\d+/', $imdb, $search)) {
$imdb = $search[0];
} else {
$imdb = 'none';
$imdblink = 'none';
}
echo $imdb;
}