Я пытаюсь изменить атрибут src iframe с http на https. Например, моя строка:
<p>Some random text <iframe src="http://some-random-link.com" width="425" height="350" frameborder="0"></iframe></p>
Что мне нужно, это изменить его на
<p>Some random text <iframe src="https://some-random-link.com" width="425" height="350" frameborder="0" ></iframe></p>
До сих пор я пытался с preg_replace, но без результатов:
$res = preg_replace( '/<iframe\s+.*?\s+src="http(.*?)".*?<\/iframe>/', '<iframe\s+.*?\s+src="https$1".</iframe>', $string);
Спасибо
Попробуйте вместо этого следующий REGEX (DEMO):
/<iframe.*?s*src="http(.*?)".*?<\/iframe>/
Но будьте осторожны, вы НЕ МОЖЕТЕ правильно проанализировать HTML с помощью REGEX. Пожалуйста, используйте вместо этого какой-нибудь XML-парсер.
Кроме того, кажется, вы хотите изменить только http
в https
, Так что для этого попробуйте следующее:
if(strpos($string, 'https') === false)
{
$string = str_replace("http", "https", $string);
}
Вы можете попробовать это регулярное выражение:
/(<iframe.+?src=".*?)(?=:)/
Живая демо Вот
Пример кода в php:
$re = '/(<iframe.+?src=".*?)(?=:)/';
$str = '<p>Some random text <iframe src="http://some-random-link.com" width="425" height="350" frameborder="0"></iframe></p>';
$subst = '\\1s';
$result = preg_replace($re, $subst, $str);
echo $result;
// <p>Some random text <iframe src="https://some-random-link.com" width="425" height="350" frameborder="0"></iframe></p>