Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用preg_replace查找具有特定src的图像_Php_Regex_Preg Replace - Fatal编程技术网

Php 使用preg_replace查找具有特定src的图像

Php 使用preg_replace查找具有特定src的图像,php,regex,preg-replace,Php,Regex,Preg Replace,我有一些文字和图像在里面。我想用其他内容替换文本中的特定图像 i、 文本包含一个youtube img url,我想用实际的视频链接替换它 <img class="mceItem" src="http://img.youtube.com/vi/1MsVzAkmds0/default.jpg" alt="1MsVzAkmds0"> 并将其替换为youtube Iframe代码: <iframe title="'.$id.'" class="youtube-player" t

我有一些文字和图像在里面。我想用其他内容替换文本中的特定图像

i、 文本包含一个youtube img url,我想用实际的视频链接替换它

<img class="mceItem" src="http://img.youtube.com/vi/1MsVzAkmds0/default.jpg" alt="1MsVzAkmds0">

并将其替换为youtube Iframe代码:

<iframe title="'.$id.'" class="youtube-player" type="text/html" width="576" height="400" src="http://www.youtube.com/embed/'.$id.'" frameborder="0"></iframe>

我的函数如下所示:

function replacelink($link) {
  $find= ("/<img src=[^>]+\>/i");
  $replace = youtube("\\2");
  return preg_replace($find,$replace);
}
函数replacelink($link){
$find=(“/]+\>/i”);
$replace=youtube(\\2“);
返回preg_replace($find,$replace);
}

要执行上述操作,我需要在正则表达式中更改什么?

您的正则表达式正在查找
,但在
img
src
之间有一个
class
属性。使用
$find='/]+>/i'纠正问题;然而,这说明了为什么不应该使用正则表达式来解析HTML

你写道:

我有一些文字和图像在里面

如果您所指的文本实际上是HTML,那么有更好的方法来替代使用正则表达式

使现代化 我相信这就是你要找的


以下正则表达式将获取具有特定url的所有图像。我不确定这是否是你想要的

<img [^>]*?src="url"[^>]*?>
]*?>

如果有多个图像,以前的anwser将失败。

什么是“youtube”函数?…如果我可以获得图像的alt标记或src,我可以将其发送到youtube函数youtube($id){返回iframe code?$id=1MsVzAkmds0}并显示iframe而不是图像。@Ingental:我刚刚看到你关于
youtube()
函数并相应地更新了我的答案。