2016-02-03 140 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'));