Php Заменить в строке Preg_match - PullRequest
       63

Php Заменить в строке Preg_match

0 голосов
/ 30 января 2020

Я хочу проверить в wp, включает ли содержимое публикации класс gx-block.
Например, у меня может быть

class="something_can_exists_or_not gx-block something_else" should print *true*

class="gx-block" *true*
Etc.

Я пробовал это, но не работает

preg_match('/class="?.*gx-block?.*"/i', $content);

Спасибо

1 Ответ

0 голосов
/ 31 января 2020

Я не думаю, что регулярное выражение является правильным инструментом для работы. Поскольку HTML не является обычным языком.

В любом случае вы можете подумать так:

https://3v4l.org/ORKkR

const REGEX = '/class=("gx-block"|"gx-block .*"|".* gx-block")/i';


const HTML1 = '<div class="gx-block">abc</div>';
const HTML2 = '<div class="xyz">abc (gx-block) def</div>';
const HTML3 = '<div class="gx-blockhhh">abc</div>';


echo preg_match(REGEX, HTML1) ? 'true' : 'false';
echo PHP_EOL;
echo preg_match(REGEX, HTML2) ? 'true' : 'false';
echo PHP_EOL;
echo preg_match(REGEX, HTML3) ? 'true' : 'false';
echo PHP_EOL;

Я бы порекомендовал сделать вместо этого доступ через DOM, как описано здесь: Получение элементов DOM по имени класса

...