从PHP使用API搜索YouTube,搜索词中包含多个单词

从PHP使用API搜索YouTube,搜索词中包含多个单词,php,api,youtube,zend-gdata,Php,Api,Youtube,Zend Gdata,我一直在尝试使用YouTube API通过Zend Gdata类从YouTube搜索视频。当我用一个词输入搜索词时,我会得到预期的结果,但当我开始在搜索词中使用多个词时,我似乎没有得到很好的结果,视频似乎与我的搜索词无关 在将搜索词传递到youtube-ie之前,我对其进行URL编码 $query->videoQuery = urlencode($searchString); 有没有人遇到过类似的问题?有什么解决方案吗?我不确定Youtube API如何提供搜索结果,但您可以尝试以下方法

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

在将搜索词传递到youtube-ie之前,我对其进行URL编码

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

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

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

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

选项2:(在每个单词前面加一个“+”)


只做str_replace(“”,“+”,$searchString)会更快吗?此外,您的查询要求至少需要两个空格才能将它们替换为
+
。用
'/\s+/'
代替:P.好球!是的,preg_替换应该是/\s+/(答案编辑)。执行str_替换(“”…)的问题是,如果有人有一个带有两个空格的搜索字符串“foo-bar”,它将变成“foo++bar”,就这么简单!谢谢Chris,选项1非常有效。仅供参考当我尝试选项2时,它没有返回任何结果,但选项1为我的搜索字符串返回了预期的视频。谢谢
$query->videoQuery = urlencode('"' . $searchString . '"');
$query->videoQuery = urlencode('+' . preg_replace('/\s+/', ' +', $searchString));