【问题标题】:Help w/ PHP Function (Whitespace)帮助 w/ PHP 函数(空白)
【发布时间】:2011-09-21 02:49:38
【问题描述】:

我正在尝试使用 PHP 将 YouTube URL 修剪为视频 ID。它正在工作,但它也在结果中添加了很多空白。有谁知道我将如何解决这个问题?这是设置:

位于 Wordpress single.php(从 post meta 中找到附加的 YouTube URL):

<?php   
$vidurl = get_post_meta($post->ID, "_videoembed", true );
$youtube_id = getYouTubeIdFromURL($vidurl);
echo $youtube_id;          
?>

这是执行函数的内容:

//Get YT Video ID
function getYouTubeIdFromURL($url)
{
  $url_string = parse_url($url, PHP_URL_QUERY);
  parse_str($url_string, $args);
  return isset($args['v']) ? $args['v'] : false;
}

就像我说的,这个函数工作正常,但它会产生一堆空白。假设元数据中包含的视频是youtube.com/watch?v=1337&amp;feature=player_embedded,它会返回

"                1337    "

提前感谢所有帮助!我以前在这个网站上曾有一些非常好的人帮助我。

【问题讨论】:

  • 您的代码只返回一个数字ideone.com/ZIqRI
  • 我知道,它应该返回视频 ID(11 个字符的字符串)。对于演示,我只使用了“1337”。
  • 但它只返回一个数字,没有空格。所以它可以正常工作

标签: php function wordpress wordpress-theming


【解决方案1】:

你确定你的get_post_meta 函数没有返回一堆空格吗?你能在$vidurl 上做一个var_dump 吗?当我运行你提供的函数时,输出看起来很好(http://www.ideone.com/LRoTd):

<?php
    function getYouTubeIdFromURL($url)
    {
        $url_string = parse_url($url, PHP_URL_QUERY);
        parse_str($url_string, $args);
        return isset($args['v']) ? $args['v'] : false;
    }

    $theurl = "youtube.com/watch?v=1337&feature=player_embedded";
    $youtubeid = getYouTubeIdFromURL($theurl);
    echo "'$youtubeid'";
?>

输出:

'1337'

【讨论】:

  • 如果检查结果很好,那么很可能是 Wordpress 功能导致了问题。我不想弄乱核心文件,因为我怕我会搞砸一些东西,每次更新后进度都会被否定。你知道我可以用什么方法来修剪空白吗?我尝试了常规修剪($youtubeid),但它似乎不起作用(注意我可能做错了)
  • trim($youtubeid) 使用您在问题中粘贴的示例对我来说效果很好。也许这些不是您要返回的真正的空格字符...?
猜你喜欢
  • 1970-01-01
  • 2010-11-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-14
  • 2012-03-20
相关资源
最近更新 更多