2016-02-03 65 views
0

我現在正在使用帶有API的Mymemory翻譯API。我不斷收到很多錯誤,它不起作用。我確實收到了file_get_contents發生HTTP失敗的錯誤。Mymemory翻譯API - CURL不起作用

我用這個代碼:

$text = filter_input(INPUT_GET, 'text'); 
$from = filter_input(INPUT_GET, 'from'); 
$to = filter_input(INPUT_GET, 'to'); 

$url = 'http://mymemory.translated.net/api/get?q=' . $text . '&langpair=' . $from . '|' . $to . '&de=SOMEEMAIL'; 
$curl = curl_init ($url); 
curl_setopt ($curl, CURLOPT_RETURNTRANSFER, true); 
curl_setopt ($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json')); 

$output = curl_exec ($curl); 

如果我var_dump$curl變量,我得到這個:resource(2) of type (curl)

如果我var_dump$output變量,我得到這個:

string(90) "<html><body><h1>400 Bad request</h1> 
Your browser sent an invalid request. 
</body></html> 
" 

如果我var_dumpcurl_error功能,我得到這個:string(0) ""

如果我var_dumpcurl_errno功能,我得到這個:int(0)

我得到了我的錯誤打開,它也不給我error_reporting任何錯誤。我不知道我在做什麼。我首先通過我的xampp服務器本地主機進行測試。

我試過使用https://除了http://但沒有改變任何東西。如果我直接使用url作爲$.get,它確實有效。我不知道我做錯了什麼。

+1

有你'urlencode'd所有參數? – Passerby

+0

哦,我沒有...現在工作,謝謝! –

回答

0

解決由於@Passerby:

只好用urlencode在PARAMS:

$text = urlencode(filter_input(INPUT_GET, 'text')); 
$from = urlencode(filter_input(INPUT_GET, 'from')); 
$to = urlencode(filter_input(INPUT_GET, 'to'));