Проблемы с печатью массива названий и URL - PullRequest
1 голос
/ 06 июля 2019

Я не очень хорош в PHP.

У меня есть папка .html файлов, которые часто меняются, и затем я хочу выполнить поиск в папке, проанализировать теги <h1>, а затем распечатать / повторить каждый тег <h1> и его URL.

Извлечение тегов <h1> из файлов .html было достаточно легким с некоторым поиском в Google, но я не могу напечатать список <h1> заголовков и соответствующих им URL.

Вот что у меня есть:

        $url_list = glob('posts/*.html'); // Searches for all files and folders in above directory that end in .html.

        foreach ($url_list as $url) { // Creates an array of post URL's and title <h1> tags.
            $post = new DOMDocument(); // Creates string to load blog post.
            $post->loadHTMLFile($url); // Loads blog post into string $post from its URL.

            $h1_tags = $post->getElementsByTagName('h1'); // Finds all <h1> tags.
            $first_h1 = $h1_tags->item(0); // Gets value of first <h1> tag.
            $title = $first_h1->nodeValue; // Sets $title to value of first <h1> tag.

            if (!empty($title)) { // Will only run on files which have a date in their metadata.
                $post_list[$url] = $title;
                $post_list[$title] = $url;
            }
        }

        sort($post_list); // Sorts list of posts in alphabetical order.

        $num = 1;

        foreach ($post_list as $title) { //
            echo "<a href=\"{$url}\"><h2>".($num++).". {$title} = {$url}</h2></a>";
        }

1 Ответ

2 голосов
/ 06 июля 2019

Вы добавляете заголовки и URL в один и тот же список, но в обратном порядке.Если вы создаете свои данные как ...

        if (!empty($title)) { // Will only run on files which have a date in their metadata.
            $post_list[$title] = $url;
        }

Так что это только добавляет их один раз, а затем выводит их как ...

    foreach ($post_list as $title => $url) { //
        echo "<a href=\"{$url}\"><h2>".($num++).". {$title} = {$url}</h2></a>";
    }

Редактировать: изменить sort()до asort()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...