2013-01-07 5 views
0

내 웹 페이지에서 youtube api를 사용하여 뮤직 비디오를 검색하는 검색 기능이 있습니다. 나중에 같은 페이지에서 볼 수 있습니다. 그러나 API를 사용할 때 검색 기능을 사용하면 검색 기능이 전혀 작동하지 않습니다. 문자열을 약간 변경하고 모든 공백을 "/"로 바꾸면 eminem은 다음과 같이됩니다. eminem/lose/yourself, 그리고 yoy 검색에서 올바른 결과를 얻지 못합니다. 다음 내 PHP 측에서 내가 가진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> 

과 :

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 & 최대 결과 = {$ 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))를 사용하여 문자열을 "+"로 바꾸기 시작했습니다. 다시. 공백으로 잘 작동하는 검색 기능을 어떻게 가질 수 있는지 알고 싶습니다.

+0

당신은'$의 q' 같은에'urlencode'을 적용하려고 노력 최신 안정 버전입니다 너? _ 그렇 겠지? 공백은 일반적으로 URL에 허용되지 않으므로 '% 20'으로 인코딩되어야합니다. 물론 슬래시는 허용됩니다. – Halcyon

+0

또한 수백만 명의 사람들이 사용하는 라이브러리 _가 "작동하지 않는다"_라고 가정하는 것은 매우 당연한 일입니다. 항상 잘못된 것을하고 있다고 가정해야합니다. – Halcyon

+0

urlencode를 사용했지만 작동하지 않습니다. –

답변

0

시도는 API의

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

버전처럼 쿼리의 형식을 매우 중요 V = 2

관련 문제