0

我正在使用 PHP 脚本来读取目录中的一些文件夹,并根据他们的名字检索他们的海报。所有这些在localhost. 但是,在外部打开时,这不起作用并导致blank图像。

来自本地主机的屏幕截图:本地主机的屏幕截图


问题可以在 中找到89.241.171.100/Prac/。PHP生成img tag

while (false !== ($entry = readdir($handle))) {
      $counter++;
      echo "<span class='title'>
              <img src='holder.js/200x280/text:$entry' 
                   alt='$entry' 
                   onload='loader(this, \"$entry\")' />
                   </span>";
      if($counter == 5) break;
 }

PHP 从以下位置获取通过 ajax 调用的图像的 src loader()

if($_POST['title']) {
    $title = $_POST['title'];
    $imdb = new Imdb();
    $movieArray = $imdb->getMovieInfo("$title");
    $link = $movieArray["poster_large"];
    echo $link;
}

Loader()功能:

$.ajax({
     type: 'post',
     url: 'loader.php',
     data: 'title='+title,
     success: function(data) {
          img.src = data;
     }
 });
4

2 回答 2

1

这看起来像是您加载它的方式的问题。这些图像是通过 Akamai 的 CDN 提供的,它不喜欢它所获得的引荐来源网址。

这是返回的内容,而不是图像有效负载。

<HTML><HEAD>
<TITLE>Referral Denied</TITLE>
</HEAD><BODY>
<H1>Referral Denied</H1>
You don't have permission to access "http&#58;&#47;&#47;ia&#46;media&#45;imdb&#46;com&#47;images&#47;M&#47;MV5BMTM5NjM0ODY1NF5BMl5BanBnXkFtZTcwMjk5NjI0Ng&#64;&#64;&#46;&#95;V1&#46;&#95;SY500&#46;jpg" on this server.<P>
Reference&#32;&#35;24&#46;24c633b8&#46;1366714063&#46;2a353f15
</BODY></HTML>

我不鼓励违反任何人的条款,但这可能对您有用,我怀疑传递一个空的引荐来源网址将解决问题,因为当您直接访问图像 URL 时它可以工作(并且不发送引荐来源网址)。

编辑:

这个小提琴是我之前建议的一个工作示例。您会注意到直接链接的图像已死,但没有引荐来源的图像可以完美加载。

于 2013-04-23T10:49:24.240 回答
1

你可以使用Imdb API

只需通过以下方式请求数据:http://imdbapi.org/?id={id}&type=json&plot=simple&episode=1&lang=en-US&aka=simple&release=simple

{id} 是电影的 imdb id。然后你可以访问图片:

$data = json_decode(file_get_contents("http://imdbapi.org/?id={id}&type=json&plot=simple&episode=1&lang=en-US&aka=simple&release=simple"));
$img = $data->poster;
于 2013-04-23T11:11:04.157 回答