Get URL from shortcode tag

时间:2012-11-17 作者:Timothy Bassett

我正在运行一个wordpress站点,我需要正确的regex语法来从\\u content()中返回的一些短代码中获取URL。

当我使用\\u content()时,它将返回如下内容:

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam nulla enim, euismod ut pharetra nec, commodo a augue. Etiam sit amet nibh mauris, eu ornare purus. Vestibulum sed sem enim, sit amet congue leo. 

[video mp4=<<insert video url here>> poster=<<insert imgae placeholder url>>]
如何获取视频mp4 URL?

3 个回复
SO网友:mrwweb

没有必要为此使用regex。WordPress有一个Shortcode API 为你做这项工作。

该codex页面包含我最喜欢的codex代码片段之一:

function bartag_func( $atts ) {
    extract( shortcode_atts( array(
        \'foo\' => \'something\',
        \'bar\' => \'something else\',
    ), $atts ) );

    ...
在注册短代码的函数开始时,它会执行以下操作:

取用户提交的短代码,如果未提供,则填写默认值$atts 参数,并将每个值转换为变量(例如。$foo, $bar, 对你来说$mp4$poster

SO网友:The J

抓住mp4 包含以下内容的url:

<?php
    $text = get_the_content(); //untested with get_the_content()
    preg_match_all("\\bmp4="(.+)\\b", $text, $matches);
    var_dump($matches[0]);
?>
例如,[视频mp4=”http://somevideo.com/abc“],将输出:

http://somevideo.com/abc
这是我的Gist, 其中的示例对我很有用,但结果可能会有所不同,具体取决于$text.

SO网友:Mubbashar

您可以使用子字符串和strpos来提取

$spos = strpos($getContent,"mp4=");
if($spos) {
$spos = $spos+4;//4 for four charactars mp4= 
$epos = strpos($getContent,\' \',$spos) - $spos;
$url = substr($getContent,$spos,$epos);
echo $url;
}

结束