【问题标题】:Searching YouTube using API from PHP with more than one word in search term使用 PHP 中的 API 搜索 YouTube,搜索词中包含多个单词
【发布时间】:2011-08-26 13:06:05
【问题描述】:

我一直在尝试使用 YouTube API 通过 Zend Gdata 类从 YouTube 搜索视频。当我用一个词输入搜索词时,我得到了预期的结果,但是当我开始在搜索词中使用多个作品时,我似乎没有得到很好的结果,视频似乎与我的搜索词无关.

我在将搜索词传递给 youtube 之前对其进行 urlencode - 即

$query->videoQuery = urlencode($searchString);

有没有人遇到过类似的问题?有什么解决办法吗?

【问题讨论】:

    标签: php api youtube zend-gdata


    【解决方案1】:

    我不确定 Youtube API 如何提供搜索结果,但您可以尝试以下方法:

    选项 1:(在查询周围添加引号)

    $query->videoQuery = urlencode('"' . $searchString . '"');
    

    选项2:(在每个单词前添加一个'+')

    $query->videoQuery = urlencode('+' . preg_replace('/\s+/', ' +', $searchString));
    

    【讨论】:

    • 只做str_replace(' ',' +', $searchString);会更快吗?此外,您的查询要求至少需要两个空格才能将它们替换为+。请改用'/\s+/':P。
    • 好收获!是的 preg_replace 应该是 /\s+/ (答案已编辑)。执行 str_replace(' '...) 的问题是,如果有人有一个带有两个空格 'foo bar' 的搜索字符串,它将变成 'foo + +bar'
    • 就是这么简单!谢谢克里斯,选项 1 效果很好。仅供参考,当我尝试选项 2 时,它没有返回任何结果,但选项 1 为我的搜索字符串返回了预期的视频。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-01
    相关资源
    最近更新 更多