首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IMDB抓取器PHP

IMDB抓取器PHP
EN

Stack Overflow用户
提问于 2010-03-24 00:17:00
回答 4查看 3.4K关注 0票数 1

我收到一个错误:

注意:未定义变量:第17行C:\wamp\www\includes\imdbgrabber.php中的内容

使用此代码时:

代码语言:javascript
复制
<?php
//url
$url = 'http://www.imdb.com/title/tt0367882/';

//get the page content
$imdb_content = get_data($url);

//parse for product name
$name = get_match('/<title>(.*)<\/title>/isU',$imdb_content);
$director = strip_tags(get_match('/<h5[^>]*>Director:<\/h5>(.*)<\/div>/isU',$imdb_content));
$plot = get_match('/<h5[^>]*>Plot:<\/h5>(.*)<\/div>/isU',$imdb_content);
$release_date = get_match('/<h5[^>]*>Release Date:<\/h5>(.*)<\/div>/isU',$imdb_content);
$mpaa = get_match('/<a href="\/mpaa">MPAA<\/a>:<\/h5>(.*)<\/div>/isU',$imdb_content);
$run_time = get_match('/Runtime:<\/h5>(.*)<\/div>/isU',$imdb_content);

//build content


line 17 -->  $content.= '<h2>Film</h2><p>'.$name.'</p>';
    $content.= '<h2>Director</h2><p>'.$director.'</p>';
    $content.= '<h2>Plot</h2><p>'.substr($plot,0,strpos($plot,'<a')).'</p>';
    $content.= '<h2>Release Date</h2><p>'.substr($release_date,0,strpos($release_date,'<a')).'</p>';
    $content.= '<h2>MPAA</h2><p>'.$mpaa.'</p>';
    $content.= '<h2>Run Time</h2><p>'.$run_time.'</p>';
    $content.= '<h2>Full Details</h2><p><a href="'.$url.'" rel="nofollow">'.$url.'</a></p>';

    echo $content;

//gets the match content
function get_match($regex,$content)
{
    preg_match($regex,$content,$matches);
    return $matches[1];
}

//gets the data from a URL
function get_data($url)
{
    $ch = curl_init();
    $timeout = 5;
    curl_setopt($ch,CURLOPT_URL,$url);
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
    curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
    $data = curl_exec($ch);
    curl_close($ch);
    return $data;
}
?>
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-03-24 00:19:22

您正在将内容追加到一个不存在的变量。将第17行更改为赋值:

代码语言:javascript
复制
$content = '<h2>Film</h2><p>'.$name.'</p>';

您还可以将该部分代码更改为以下代码,这样会稍微整洁一些:

代码语言:javascript
复制
$content = '<h2>Film</h2><p>'.$name.'</p>'
         . '<h2>Director</h2><p>'.$director.'</p>'
         . '<h2>Plot</h2><p>'.substr($plot,0,strpos($plot,'<a')).'</p>'
      // etc
票数 6
EN

Stack Overflow用户

发布于 2010-03-24 00:19:20

当变量$content还不存在时,您正在尝试将其添加到该变量中,这自然会触发错误。

尝试将第17行中的$content.=替换为$content=

票数 3
EN

Stack Overflow用户

发布于 2010-03-24 00:20:14

你收到的不是一个错误,而是一个通知,因为你试图将一些东西连接到一个不存在的变量上。从第17行的.=中删除点,或将$content = ''放在第17行之前。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2501633

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档