0

我有一个网址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]"); ?>

任何帮助是极大的赞赏。

4

2 回答 2

0

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

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

那么 $matches[0] 将包含3360726

于 2013-09-30T05:03:39.633 回答
0

这可以通过几个 PHP 函数解决,parse_url并且pathinfo

$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'];
于 2013-09-29T16:10:31.027 回答