我对PHP还很新。我看到有关此通知的其他帖子,但似乎没有人谈到我的情况。我试图从另一页面列出标题(h2元素)。虽然我已经成功完成了这项工作(标题是列表),但我也收到了以下通知:
'注意:未定义的偏移量:在第26行的#Users/jessenichols/Sites/HCS/news.php中为1'
<?php
function getTitle($Url){
$str = file_get_contents($Url);
if(strlen($str)>0){
preg_match("/\<h2\>(.*)\<\/h2\>/",$str,$title);
return $title[1];
}
}
if ($handle = opendir('news')) {
while (false !== ($entry = readdir($handle))) {
if ($entry != "." && $entry != "..") {
echo '<p class="article_selector">'.getTitle('news/'."$entry").'</p>';
}
}
closedir($handle);
}
?>
答案 0 :(得分:1)
在getTitle
方法中,检查是否设置了$title[1]
,大小写不返回null,然后在while
循环中,将getTitle()
的结果分配给变量并检查如果此变量不为null,则为此
<?php
function getTitle($Url){
$str = file_get_contents($Url);
if(strlen($str)>0){
preg_match("/\<h2\>(.*)\<\/h2\>/",$str,$title);
// if $title[1] isn't set, return null
return isset($title[1]) ? $title[1] : null;
}
}
if ($handle = opendir('news')) {
while (false !== ($entry = readdir($handle))) {
if ($entry != "." && $entry != "..") {
// first, get the title
$title = getTitle('news/'.$entry);
// and after check if title is not null
if (null != $title) {
echo '<p class="article_selector">'.$title.'</p>';
}
}
}
closedir($handle);
}
?>