I’m trying to change the src attribute of an iframe from http to https. For example, my string is:
<p>Some random text <iframe src="http://some-random-link.com" width="425" height="350" frameborder="0"></iframe></p>
What I need is to change it to
<p>Some random text <iframe src="https://some-random-link.com" width="425" height="350" frameborder="0" ></iframe></p>
By far, I’ve been trying with preg_replace but no results:
$res = preg_replace( '/<iframes+.*?s+src="http(.*?)".*?</iframe>/', '<iframes+.*?s+src="https$1".</iframe>', $string);
Thank you
Advertisement
Answer
Try the following REGEX instead(DEMO):
/<iframe.*?s*src="http(.*?)".*?</iframe>/
But beware, You CAN NOT parse HTML with REGEX properly. Please, use some XML parser instead.
Also, it seems you only want to change http
to https
. So for that try the following instead:
if(strpos($string, 'https') === false) { $string = str_replace("http", "https", $string); }