【问题标题】:YOUTUBE API search function doesnt work properlyYOUTUBE API 搜索功能无法正常工作
【发布时间】:2013-01-07 13:55:23
【问题描述】:

我的网页上有一个搜索功能,使用 youtube api 搜索音乐视频。稍后您可以在同一页面上观看它。 但是,当我使用 api 时,当我搜索带有空格的东西时,搜索功能将完全起作用。当我对字符串进行一些更改并用“/”替换所有空格时,例如 eminem lost yourself 变成: eminem/lose/yourself,当你搜索这个时,你不会得到正确的结果。这是我正在使用的代码的和平: 这是我的代码:

<form method="post" action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>">
<p>Search:
<input type="text" name="q" />
<input type="submit" name="submit" value="Search" style="margin-top:-30px"/>
</p>
</form>

然后在我的 php 方面我有:

if (!isset($_POST['q']) || empty($_POST['q'])) {
        die ('ERROR: Please enter one or more search keywords');
} 
else {  
        $q = $_POST['q'];
    $q = str_replace(' ','/',$q);
        //echo $q;

} $feedURL = "http://gdata.youtube.com/feeds/api/videos/-/{$q}?orderby=viewCount&max-results={$i}"; $sxml = simplexml_load_file($feedURL); // 从 opensearch: namespace 获取汇总计数 $counts = $sxml-> children('http://a9.com/-/spec/opensearchrss/1.0/'); $total = $counts->totalResults; $startOffset = $counts->startIndex; $endOffset = ($startOffset-1) + $counts->itemsPerPage;

我尝试了不同的方法来使搜索功能正常工作。我使用了这个 $q = ereg_replace('[[:space:]]+', '/', trim($q)),它不起作用,然后我开始用“+”替换字符串,它不起作用再次。 我想看看我怎样才能有一个可以很好地处理空格的搜索功能。

【问题讨论】:

  • 您是否尝试过像您应该一样将urlencode 应用于$q? URL 中通常不允许使用空格,它们应编码为%20。当然允许使用斜线。
  • 另外,假设一个被数百万人使用的库“不起作用”是非常冒昧的,你应该总是假设你做错了什么。跨度>
  • 我确实使用了 urlencode 但它不起作用。

标签: php youtube-api


【解决方案1】:

尝试像这样格式化您的查询

https://gdata.youtube.com/feeds/api/videos?
q=football+-soccer
&orderby=published
&start-index=11
&max-results=10
&v=2

API 的版本很重要 v=2 是最新的稳定版本

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-17
    • 1970-01-01
    • 2020-04-16
    • 2022-01-08
    • 1970-01-01
    • 2013-11-28
    • 1970-01-01
    相关资源
    最近更新 更多