PHP Запрос в каком теге это слово.

В настоящее время я использую этот код для получения тегов.

$title = $pq->find("title")->text();
$h1 = $pq->find("h1")->text();
$p = $pq->find("p")->text();

Это правильный способ сделать это?

Во-вторых, я должен увидеть, какое слово из моего массива $array_words есть в каком теге. Итак, я получил file_get_contents и удалил все теги и поместил все слова в массив. Теперь давайте возьмем это, например:

Array
(
    [0] => hello
    [1] => there
    [2] => this
    [3] => is
    [4] => a
    [8] => test
    [9] => array
)

и это будет HTML:

<html>
    <head>
        <title>
            hello there
        </title>
    </head>
    <body>
        <h1>
           this is a
        </h1>
        <p>
           test array
        </p>
    </body>
</html>

Как я могу узнать, какое слово найдено в каком теге?

Надеюсь, я кое-что прояснил, что я пытаюсь сделать.

1 ответ

Основываясь на вопросе, дело в том, что вам нужно создать ссылку на то, какое слово из $array_words содержится в каком-то HTML-теге.

Итак, у вас есть массив тегов, которые вы хотите проверить, верно?

Что я вижу, так это:

  1. Получить все теги, которые вы хотите проверить.
  2. Поместите все теги на Foreach, чтобы проверить все.
  3. На Foreach используйте phpQuery, чтобы найти слова внутри этих тегов.
  4. phpQuery должен возвращать текст, поэтому вы должны разбить новый массив слов с именем "$words_from_text", используя explode. Новый массив создан.
  5. Используйте компаратор "in_array" в новый foreach (внутри старого), чтобы узнать, какие слова из $array_words находятся внутри текста.
  6. Если ключ от $ words_from_text находится в $array_words, добавьте массив тегов, установив новый массив, прикрепленный к ключу тега.

    $ array_tags = ('h1', 'div', 'title',)

    $array_words = ([0] => привет [1] => там [2] => это [3] => это [4] => a [8] => test [9] => массив)

Final Array с результатами должен выглядеть так:

$array_tags = array(
   ['title'] = array('word1','word2'),
   ['h1']    = array('word3','word4'),
   ['div']   = array('word5','word6')
);

Поэтому, если вам нужен этот пример, вы можете использовать это руководство для решения вашей проблемы.

Другие вопросы по тегам