我在我的网页上使用YouTube YouTube api搜索音乐视频的搜索功能。稍后,您可以在同一页面上观看。然而,当我使用api时,以及当我搜索其中有空格的东西时,搜索功能完全可以工作。当我对字符串进行一些更改并用“/”替换所有空格时,例如,eminem迷失自己变成:eminem/lose/yourself,并且当你搜索到这个时,你不会得到正确的结果。这是我使用的代码和平: 这是我的代码:YOUTUBE API搜索功能无法正常工作
<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的摘要计数:命名空间 $ 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'。当然允许斜线。 – Halcyon
另外,假设一个图书馆 - 被数百万人使用 - “不起作用”是非常冒失的 - 你总是应该假设你做错了什么。 – Halcyon
我确实使用过urlencode,但它不起作用。 –