regexp взять meta теги php

102
13 февраля 2021, 18:20

Пытаюсь взять мета-теги со страницы, в которых есть html разметка, например:

<meta name="keywords" content="Ecology, allelopaty, Corn Cokle <em>(Agrostemma Githago L.)</em>, germination viability, sprout, ramified root, chlorophyll content, yield, varietal fruit colour, antocyan, digestion, resistance against pests and diseases, resistance against climatic extremes, organic food production.">

таким regexp <meta( .*?>|>). Это приводит к обрезанию части ключей. Я понимаю, что это возможно не валидный код, но мне нужно взять мета, есть ли какая то возможность сделать это regex-пом или нужно предварительно подготовить строку? Помогите составить регулярку, если это возможно.

Answer 1

Вроде бы так должно получиться:

<meta\s("[^"]*"|'[^']*'|[^>])*>

Проверка:

s = '<meta name="keywords" content="Ecology, allelopaty, Corn Cokle <em>(Agrostemma Githago L.)</em>, germination viability, sprout, ramified root, chlorophyll content, yield, varietal fruit colour, antocyan, digestion, resistance against pests and diseases, resistance against climatic extremes, organic food production."><style type="text/css">' 
console.log(s.match(/<meta\s("[^"]*"|'[^']*'|[^>])*>/)[0])

READ ALSO
PHP не изменяется переменная

PHP не изменяется переменная

Проверял через консоль, что при обращении к этому коду через type=set&set=true isSending меняется на true, но если потом обратиться через type=get то переменная...

117
Ajax обновление input при нажатии на button кнопки

Ajax обновление input при нажатии на button кнопки

<?php echo $tdResultCard['idCart'] ?> нужно для того, чтобы не было похожих полей/кнопок, те

129
Обязательный аргументы метода класса

Обязательный аргументы метода класса

Будет ли срабатывать метод класса, если не указать все обязательные аргументы этого метода? или будет возвращать false/exit?

95