php preg_replace 帮助 iframe src

发布于 2024-10-26 11:49:24 字数 1248 浏览 1 评论 0 原文

我创建了一个函数,它将为 youtube 嵌入代码设置高度、宽度和 wmode=transparent 。现在 youtube 正在返回 iframe 代码。所以,我需要在 youtube src 的末尾附加“?wmode=transparent”。

例如。
原始代码:

我希望将其替换为:

替换高度和宽度有效,但替换 src 不起作用。

我正在使用下面的正则表达式

$patterns[] = '/src="http:\/\/www.youtube.com\/embed\/[a-zA-Z0-9._-]"/';
$replacements[] = 'src="http://www.youtube.com/embed/${1}?wmode=transparent"';

下面是我的功能。

函数SetHeightWidthVideo($markup,$w='200',$h='120') { //使其wmode =透明

 $markup = str_replace('

}

请帮忙。提前致谢。

I have created a function which will set height, width and wmode=transparent for youtube embed codes. Now youtube is returning iframe code. So, I need to append "?wmode=transparent" at the end of youtube src.

For eg.
Original code :

<iframe title="YouTube video player" width="420" height="349" src="http://www.youtube.com/embed/aXNUL1-urg8" frameborder="0" allowfullscreen=""></iframe>

I want it to be replaced with :

<iframe title="YouTube video player" width=" mywidth" height=" myheight" src="http://www.youtube.com/embed/aXNUL1-urg8 ?wmode=transparent" frameborder="0" allowfullscreen=""></iframe>

Replacing height and width is working, but replacing src does not work.

I am using below regex

$patterns[] = '/src="http:\/\/www.youtube.com\/embed\/[a-zA-Z0-9._-]"/';
$replacements[] = 'src="http://www.youtube.com/embed/${1}?wmode=transparent"';

Below is my function.

function SetHeightWidthVideo($markup,$w='200',$h='120')
{
//to make it wmode = transparent

  $markup = str_replace('<embed ','<embed wmode="transparent" ',$markup);
  //$w = '200';
  //$h = '120';

  $patterns = array();
  $replacements = array();
  if( !empty($w) )
  {
      $patterns[] = '/width="([0-9]+)"/';
      $patterns[] = '/width:([0-9]+)/';

      $replacements[] = 'width="'.$w.'"';
      $replacements[] = 'width:'.$w;
  }

  if( !empty($h) )
  {
      $patterns[] = '/height="([0-9]+)"/';
      $patterns[] = '/height:([0-9]+)/';

      $replacements[] = 'height="'.$h.'"';
      $replacements[] = 'height:'.$h;
  }



  $patterns[] = '/src="http:\/\/www\.youtube\.com\/embed\/[a-zA-Z0-9._-]"/';
  $replacements[] = 'src="http://www.youtube.com/embed/${1}?wmode=transparent"';

  return preg_replace($patterns, $replacements, $markup);

}

Please help. Thanks in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

雨夜星沙 2024-11-02 11:49:24

尝试:

$patterns[] = '/src="(.*?)"/';
$replacements[] = 'src="${1}?wmode=transparent"';

return preg_replace($patterns, $replacements, $markup);

try:

$patterns[] = '/src="(.*?)"/';
$replacements[] = 'src="${1}?wmode=transparent"';

return preg_replace($patterns, $replacements, $markup);
冷血 2024-11-02 11:49:24

复制、粘贴、运行:

function setHeightWidthSrc($s, $width, $height)
{
  return preg_replace(
    '@^<iframe\s*title="(.*)"\s*width="(.*)"\s*height="(.*)"\s*src="(.*?)"\s*(.*?)</iframe>$@s',
    '<iframe title="\1" width="' . $width . '" height="' . $height . '" src="\4?wmode=transparent" \5</iframe>',
    $s
  );
}

$original = '<iframe title="YouTube video player" 
  width="420" height="349" src="http://www.youtube.com/embed/aXNUL1-urg8" 
  frameborder="0" allowfullscreen=""></iframe>
';
print "$original\n";
print setHeightWidthSrc($original, 100, 100) . "\n";

copy, paste, run:

function setHeightWidthSrc($s, $width, $height)
{
  return preg_replace(
    '@^<iframe\s*title="(.*)"\s*width="(.*)"\s*height="(.*)"\s*src="(.*?)"\s*(.*?)</iframe>$@s',
    '<iframe title="\1" width="' . $width . '" height="' . $height . '" src="\4?wmode=transparent" \5</iframe>',
    $s
  );
}

$original = '<iframe title="YouTube video player" 
  width="420" height="349" src="http://www.youtube.com/embed/aXNUL1-urg8" 
  frameborder="0" allowfullscreen=""></iframe>
';
print "$original\n";
print setHeightWidthSrc($original, 100, 100) . "\n";
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文