获取URL的ID以回显到WordPress简码中


get id of url to echo into wordpress shortcode

我有一个网址 http://api.spreaker.com/download/episode/3360726.mp3?preroll=0&commercials=0 O 想做的只是在.mp3之前获取数字,这样我就可以将其添加到 WordPress 简码中。 URL 来自 RSS 提要。 你可以在这里看到示例 http://thecasadefe.com/category/blog/spreaker/现在它可以工作,因为我在短代码中手动输入 id,但从 rss 提要我得到了 url,但我无法通过 php 从 url 中获取 id 以回显为短代码。

这是我的代码:

    <?php $enclosure = get_post_meta($post->ID , 'enclosure', $single = true);
    $media=explode(chr(10),$enclosure); ?>
    <?php if (!is_null($media)) : ?>
    <?php $url='<a href="'.$media[0].'" rel="nofollow">'.$media[0].'</a>';
    echo($url); ?>
    <?php endif; ?>
    <?php $mp3title=the_title(); ?>
    <?php $url=''.$mp3title.'';echo($url); ?>
<?php echo do_shortcode("[spreaker type=standard width=100% autoplay=false episode_id=3161467]"); ?>

任何帮助将不胜感激。

这是用几个 PHP 函数解决的,parse_urlpathinfo

$url = 'http://api.spreaker.com/download/episode/3360726.mp3?preroll=0&commercials=0';
$parse = parse_url( $url );
/*
$parse = array (size=4)
  'scheme' => string 'http' (length=4)
  'host' => string 'api.spreaker.com' (length=16)
  'path' => string '/download/episode/3360726.mp3' (length=29)
  'query' => string 'preroll=0&commercials=0' (length=23)
*/
$info = pathinfo( $parse['path'] );
/*
$info = array (size=4)
  'dirname' => string '/download/episode' (length=17)
  'basename' => string '3360726.mp3' (length=11)
  'extension' => string 'mp3' (length=3)
  'filename' => string '3360726' (length=7)
*/
$final_id = $info['filename'];

可能很顽皮并使用正则表达式

preg_match('~('d+)(?='.mp3)~',$url,$matches)

则 $matches[0] 将包含3360726