2011-08-26 2 views
0

나는 YouTube API를 사용하여 Zend Gdata 클래스를 사용하여 YouTube에서 동영상을 검색하려고 노력해 왔습니다. 한 단어로 검색어를 입력 할 때 기대되는 결과를 얻을 수 있지만 검색 용어에서 두 가지 이상의 저작물을 사용하기 시작하면 매우 좋은 결과를 얻지 못하는 것 같습니다. 동영상이 내 검색어와 관련이없는 것 같습니다. .검색어에서 한 단어 이상이 포함 된 PHP API를 사용하여 YouTube 검색

내가 YouTube에 전달하기 전에 검색어를를 urlencode - 즉

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

사람이 비슷한 문제가 건너 했습니까? 어떤 해결책?

답변

1

나는 유튜브 API는 검색 결과를 제공하지만 당신이 시도 할 수있는 방법을 정확히 모르겠어요 다음

옵션 1 : (쿼리 따옴표를 추가합니다)

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

옵션 2 : (추가합니다 각 단어 앞의 '+')

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

'str_replace (' ','+ ', $ searchString);'를 수행하는 것이 더 빠릅니까? 또한, 당신의 질의는'+'로 그들을 대체하기 위해 최소한 두 개의 공백이 필요합니다. 대신에''/ \ s +/''를 사용하십시오 : P. – xfix

+1

잘 잡으세요! 그래, preg_replace는/\ s +/(답변 편집)이어야합니다. str_replace (''...)를 할 때의 문제점은 누군가가 'foo bar'라는 공백이있는 검색 문자열을 가지고 있다면 'foo + + bar'가 될 것입니다. –

+0

간단합니다! Chris 덕분에 옵션 1이 훌륭하게 작동했습니다. 참고로 옵션 2를 시도한 결과 아무런 결과도 반환되지 않았지만 옵션 1은 검색 문자열에 대해 예상 동영상을 반환했습니다. 감사! – undefined

관련 문제