2012-09-18 6 views
2

이것은 일반적인 오류 인 것처럼 보이지만 모든 것을 시도했지만 작동하지 않습니다!file_get_contents 및 &

내 코드는 현재 다음과 같습니다

: 난 그냥에 대한 내가 발견,하지만 여전히 수있는 모든 솔루션은 같은 오류를 얻을 수/인코딩을의 html_entity_decode에 URLDECODE에서 모든 것을 시도했습니다

$apikey = "XXXXXXXXX"; 
$search_url = "https://www.googleapis.com/shopping/search/v1/public/products?key=$apikey&country=US&q=$item_title&restrictBy=gtin&alt=json"; 

$response = file_get_contents($search_url); 

file_get_contents(https://www.googleapis.com/shopping/search/v1/public/products?key=XXXXX&country=US&q=THESTRING&restrictBy=gtin&alt=json) failed to open stream: HTTP request failed! HTTP/1.0 400 Bad Request 

당신이 볼 수 있듯이, 나는 얻는 대신 일반 팔자 '& (앰퍼샌드)의 & A

나는 simil를 가진 기억 ar 문제 였고 문제는 간단히 문자열 시작 부분에 "http : //"가 없었습니다. 그러나 보시다시피, 여기서는 그렇지 않습니다.

감사합니다.

+0

phpinfo()를 붙여 넣을 수 있습니까? – GBD

+0

php.ini 파일에서 allow_url_fopen이 활성화되어 있는지 확인할 수 있습니까? 또는 $ query = file_get_contents ('http://www.youtube.com/watch?v = XiFrfeJ8dKM '); – GBD

+0

allow_url_fopen = php.ini의 켜기 file_get_contents ("http://www.google.com")을 실행하면 오류가 발생하지 않으며 $ response가 예상대로 작동합니다. File_get_contents ("https://www.google.com/imghp?hl=en&tab=wi")도 작동합니다. – user1595077

답변

0

작은 따옴표를 사용하여 테스트 문자열을 그대로 사용 했습니까? 내 문제에 대한 대답은 아주 간단했다

$search_url = 'https://www.googleapis.com/shopping/search/v1/public/products?key='.$apikey.'&country=US&q=$item_title&restrictBy=gtin&alt=json'; 
+0

예, 시도했지만 제대로 작동하지 않았습니다. 하지만 나는 무엇이 작동했는지 (어리석은 나를) 알아 냈습니다. 제가 전달한 문자열과 $ item_title에는 공백이있었습니다. 나는 그것을 (무언가 더하기 기호 일까?) 무언가로 번역하는 방법을 찾아야하지만, 그것은 근본적으로 문제를 일으키는 원인이된다. ... – user1595077

+0

이제 공백이있는 항목 제목을 전달할 때 문제가있는 것 같다. 그것은,이 오류를 제공합니다. 나는 항목을 인용 ("single"과 "double") 해보고 공백을 % 20 및 더하기 부호로 번역했지만 작동하지 않는 것 같습니다 ... 어떤 생각입니까? – user1595077

+0

cURL을 사용해 보셨습니까? curl은 file_get_contents보다 훨씬 빠르고 빠릅니다. 값을 URL에 붙여 넣을 수 있습니까? – GBD

-1

같이 : ITEM_TITLE이 공백을 포함 $

은, PHP는 오류가 발생했습니다.

strtr($item_title, " ", "+"); 

변경 공백을 플러스 표지판 :이 문제를 해결하려면 내가했던 일은, 내 코드에 이것을 추가했다. 더 이상 실패한 요청은 없습니다.

감사합니다.

+1

다시 말했듯이 위에서 언급 한 것처럼'urlencode'를 사용하십시오. – slugonamission

+0

또한 문제가 해결되면 답변을 수락 된 것으로 표시하십시오. –

0

봅니다 내 경우처럼 매개 변수의 공백을 제거합니다 : 단어 "IT의 머리"사이의 공간을 가진 경우 그 작동하지

search_jobs.php?catagory_select=1&keys=head of IT 

search_jobs.php?catagory_select=1&keys=head-of-IT 

내가 공간을 대체 한

" - "대시 간판과 그 작업.

"search_jobs.php : 당신은 여기에 모든 공백을 대체하는 스크립트에 많은 변화를 만들기 위해 필요합니다 생각한다면

내가 페이지를 여는 것처럼 개방되고있는 페이지의 빠른 방법 IT의? catagory_select = 1 & 키 = 머리가 IT의 머리 "이제

매개 변수에서 자동으로 공간을 repalce하는"search_jobs.php "당신은로드 페이지에 자바 스크립트 코드를 추가해야" "

,132,

이 코드를 페이지 맨 위에 추가하면 페이지를 열기 전에 자동으로 "-"대시 기호가있는 공백이 대체됩니다.

감사합니다.