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-теге.
Итак, у вас есть массив тегов, которые вы хотите проверить, верно?
Что я вижу, так это:
- Получить все теги, которые вы хотите проверить.
- Поместите все теги на Foreach, чтобы проверить все.
- На Foreach используйте phpQuery, чтобы найти слова внутри этих тегов.
- phpQuery должен возвращать текст, поэтому вы должны разбить новый массив слов с именем "$words_from_text", используя explode. Новый массив создан.
- Используйте компаратор "in_array" в новый foreach (внутри старого), чтобы узнать, какие слова из $array_words находятся внутри текста.
Если ключ от $ 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')
);
Поэтому, если вам нужен этот пример, вы можете использовать это руководство для решения вашей проблемы.