gpt4 book ai didi

javascript - 将此正则表达式代码集成到现有的php代码中

转载 作者:行者123 更新时间:2023-12-03 05:59:47 25 4
gpt4 key购买 nike

我正在使用以下代码输出嵌入最新视频的视频:

$args = array( 
'numberposts' => '1',
'tax_query' => array(
array(
'taxonomy' => 'post_format',
'field' => 'slug',
'terms' => 'post-format-video'
)
),
'meta_query' => array(
array(
'key' => 'dt_video',
'value' => '',
'compare' => '!='
)
)
);
$latest_video = wp_get_recent_posts($args); // Get latest video in 'video' post format
$latest_video_id = $latest_video['0']['ID']; // Get latest video ID
$video_url = htmlspecialchars(get_post_meta($latest_video_id, 'dt_video', true));
echo '<iframe width="180" height="101" src="'.$video_url.'?rel=0&output=embed" frameborder="0" allowfullscreen></iframe>';

该URL在HTML中可以很好地输出,但是该视频没有显示,并且在控制台中出现以下错误:
Refused to display 'http://www.youtube.com/watch?v=l4X2hQC32NA&feature=g-all-u&context=G258729eFAAAAAAAAHAA?rel=0' in a frame because it set 'X-Frame-Options' to 'SAMEORIGIN'.
通过一些搜索,我发现这是因为视频格式不正确。

上面错误中的URL的格式应为: www.youtube.com/embed/l4X2hQC32NA?rel=0
因此,我 found a way使用以下代码动态更改格式:
$text = $post->text;
$search = '#<a(.*?)(?:href="https?://)?(?:www\.)?(?:youtu\.be/|youtube\.com(?:/embed/|/v/|/watch?.*?v=))([\w\-]{10,12}).*<\/a>#x';
$replace = '<iframe width="180" height="101" src="http://www.youtube.com/embed/$2" frameborder="0" allowfullscreen></iframe>';
$text = preg_replace($search, $replace, $text);
echo $text;

但是,我不确定如何将其实现到原始代码中,以便更改输出URL的格式。有人可以告诉我如何实现这一目标吗?

最佳答案

像这样:

$video_url = "http://www.youtube.com/watch?v=l4X2hQC32NA&feature=g-all-u&context=G258729eFAAAAAAAAHAA?rel=0";
$search = '#(?:href="https?:\/\/)?(?:www\.)?(?:youtu\.be\/|youtube\.com(?:\/embed\/|\/v\/|\/watch?.*?v=))([\w\-]{10,12}).*$#x';
$replace = "http://www.youtube.com/embed/$1";
preg_match_all($search, $video_url, $matches);
$embedded_video_url = preg_replace($search, $replace, $video_url) ;
echo '<iframe width="180" height="101" src="'.$embedded_video_url.'" frameborder="0" allowfullscreen></iframe>';

只需使用您自己的 $video_url

关于javascript - 将此正则表达式代码集成到现有的php代码中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22670305/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com