如何使用PHP的preg_replace从iframe标签中提取src属性链接(附实现代码)
解决方案:从转义iframe标签提取src并移除标签内容
我刚搞定了这个需求——处理包含转义<iframe>标签的字符串,提取其中的src链接,同时移除整个iframe标签内容。以下是我的实现步骤和代码:
问题场景
给定一段包含转义iframe标签的字符串(比如带有<、"这类HTML转义字符),需要:
- 提取
src属性对应的链接(例如https://www.test.com/) - 移除整个iframe标签的内容
实现代码
// 原始包含转义iframe的字符串 $stringaiframe = 'test inserisco ifram tag <iframe width="560" height="315" src="https://www.test.com/" title="test" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>'; // 使用preg_replace处理:提取src并移除iframe标签 $stringaiframe = preg_replace('/<iframe\s+.*?\s+src=("[^"]+").*?<\/iframe>/', '""""""$1""""""', $stringaiframe);
正则表达式解释
<iframe\s+.*?\s+src=:匹配转义后的<iframe开头,跳过任意空白和属性,精准定位到src=部分("[^"]+"):捕获组,匹配被转义引号"包裹的完整src链接内容.*?<\/iframe>:匹配iframe标签剩余的所有内容,直到转义的闭合标签</iframe>- 替换部分:将整个iframe标签替换为指定格式(这里用多组转义引号包裹捕获到的src链接)
处理完成后,原始字符串中的iframe标签会被移除,同时保留了我们需要的src链接内容。
内容的提问来源于stack exchange,提问作者natoduevolte
相关产品推荐
相关产品推荐

