PHP通知 - 未定义的偏移量1

时间:2014-05-14 19:23:40

标签: php

我对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);
        }
    ?>

1 个答案:

答案 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);
        }
    ?>