@lid2pro

Как реализовать поиск iframe в строке с фильтром?

Доброго времени суток,
прошу помощи. Задача такая: есть посылаемая на сервер строка $mystring, которая может что-то содержать, в том числе iframe с ютуб-роликом. Нужно найти/сравнить все iframe и если какой-то из них не ютуб, то выдать ошибку.

Делал поиск подстроки, но проблема в том, что если один из iframe подходит, то всё выполняется.

Как я делал:
$mystring = '<p>Текст текст<iframe allowfullscreen="" frameborder="0" height="403" src="//www.youtube.com/embed/eMzAW9hqdRA" width="717"></iframe> <iframe allowfullscreen="" frameborder="0" height="403" src="http://www.левый-сайт.ру" width="717"></iframe></p>';
$findme   = 'src="//www.youtube.com/embed/';
$findme2   = 'src="https://www.youtube.com/embed/';
$pos = strpos($mystring, $findme);
$pos2 = strpos($mystring, $findme2);

		if (stristr( $mystring, "<iframe " ) || stristr( $mystring, "<IFRAME " )){
			if($pos || $pos2) {
echo "всё хорошо, выполняем отправку строки";
  } else {
echo "выводим ошибку";
  }
		}

В моем коде в строке есть iframe на www.левый-сайт.ру , т.е. нужно выдать ошибку, но т.к. один из iframe отрабатывает TRUE, то такая строка проходит. Нужно чтоб проверялись все iframe, и если где-то не ютуб, то выдавать ошибку.
Что-то мне подсказывает что нужно копать в сторону preg_match , но не знаю как корректно все это реализовать. Помогите.
  • Вопрос задан
  • 126 просмотров
Пригласить эксперта
Ответы на вопрос 1
LazyTalent
@LazyTalent
Data Engineer, Freelancer
$reg = "~youtube\.com~"
if(preg_match($reg,  $pos) || preg_match($reg,  $pos2)) {
echo "ok";
} else {
echo "not ok";
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы