我无法找到我在这个函数中遗漏的东西,所以它产生这个错误的时间并不总是这样?
错误: -
Notice: Undefined offset: 13 in /home/chandrak/public_html/tmp/c/Crawler.php on line 131
行号131在以下代码中定义。
function crawlImage($url)
{
$content=$this->getContent($url);
$domain=$this->getDomain($url);
//echo $domain,'<br>';
$dom = new DOMDocument();
@$dom->loadHTML($content);
$xdoc = new DOMXPath($dom);
//Read the images that is between <a> tag
$atags = $xdoc ->evaluate("//a"); //Read all a tags
$index=0;
for ($i = 0; $i < $atags->length; $i++)
{
$atag = $atags->item($i); //select an a tag
$imagetags=$atag->getElementsByTagName("img");//get img tag
$imagetag=$imagetags->item(0);
if(sizeof($imagetag)>0)//if img tag exists
{
$imagelinked['src'][$index]=$imagetag->getAttribute('src');//save image src
$imagelinked['link'][$index]=$atag->getAttribute('href');//save image link
$index=$index+1;
}
}
//Read all image
//Betweem <img> tag
$imagetags = $xdoc ->evaluate("//img"); //Read all img tags
$index=0;
$indexlinked=0;
for ($i = 0; $i < $imagetags->length; $i++)
{
$imagetag = $imagetags->item($i);
$imagesrc=$imagetag->getAttribute('src');
$image['link'][$index]=null;
/*LINE NO 131 */ if($imagesrc==$imagelinked['src'][$indexlinked]) //THIS IS LINE NUBER 131
{
$image['link'][$index]=$this->convertLink($domain,$url,$imagelinked['link'][$indexlinked]);
$indexlinked=$indexlinked+1;
}
$image['src'][$index]=$this->convertLink($domain,$url,$imagesrc);
$index=$index+1;
}
return $image;
}
答案 0 :(得分:1)
将行更改为:
if (isset($imagelinked['src'][$indexlinked]) && $imagesrc == $imagelinked['src'][$indexlinked]) {
......错误应该消失。
编辑这里是该函数的编辑版本,避免了该错误,并删除了几个无意义的变量,并连接了几行,并添加了一个丢失的{
。< / p>
function crawlImage ($url) {
$domain = $this->getDomain($url);
//echo $domain,'<br>';
$dom = new DOMDocument();
@$dom->loadHTML($this->getContent($url));
$xdoc = new DOMXPath($dom);
// Read the images that is between <a> tag
$atags = $xdoc->evaluate("//a"); // Read all <a> tags
for ($index = 0, $i = 0; $i < $atags->length; $i++) {
$atag = $atags->item($i); // Select an <a> tag
$imagetags = $atag->getElementsByTagName("img");//get img tag
$imagetag = $imagetags->item(0);
if (sizeof($imagetag) > 0) { // If <img> tag exists
$imagelinked['src'][$index] = $imagetag->getAttribute('src'); // Save image src
$imagelinked['link'][$index] = $atag->getAttribute('href'); // Save image link
$index++;
}
}
// Read all images between <img> tag
$imagetags = $xdoc->evaluate("//img"); //Read all img tags
for ($indexlinked = 0, $i = 0; $i < $imagetags->length; $i++) {
$imagetag = $imagetags->item($i);
$imagesrc = $imagetag->getAttribute('src');
$image['link'][$i] = NULL;
if (isset($imagelinked['src'][$indexlinked]) && $imagesrc == $imagelinked['src'][$indexlinked]) {
$image['link'][$i] = $this->convertLink($domain,$url,$imagelinked['link'][$indexlinked]);
$indexlinked++;
}
$image['src'][$i] = $this->convertLink($domain,$url,$imagesrc);
}
return $image;
}