Вчера все работало отлично с переводчиком, но сегодня я получаю следующую ошибку.
Предупреждение: неверный аргумент указан для foreach () в C: \ xampp \ htdocs \ apitranslation \ vendor \ statickidz \ php-google-translate-free \ src \ GoogleTranslate.php в строке 123
Мой текст < 5000 знаков Вы подозреваете, в чем проблема?
// Google переводит URL
$ url = «https://translate.google.com/translate_a/single?client=at&дт = т&дт = Л.Д.&дт = ККА&дт = гт&дт = шд&DJ = 1&HL = ES-ES&то есть = UTF-8&ОЕ = UTF-8&inputm = 2&OTF = 2&IID = 1dd3b944-fa62-4b55-b330-74909a99969e«;
$fields = array(
'sl' => urlencode($source),
'tl' => urlencode($target),
'q' => urlencode($text)
);
// URL-ify the data for the POST
$fields_string = "";
foreach ($fields as $key => $value) {
$fields_string .= $key . '=' . $value . '&';
}
rtrim($fields_string, '&');
// Open connection
$ch = curl_init();
// Set the url, number of POST vars, POST data
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, count($fields));
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_ENCODING, 'UTF-8');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_USERAGENT, 'AndroidTranslate/5.3.0.RC02.130475354-53000263 5.1 phone TRANSLATE_OPM5_TEST_1');
// Execute post
$result = curl_exec($ch);
// Close connection
curl_close($ch);
return $result;
}
/**
* Dump of the JSON's response in an array
*
* @param string $json
* The JSON object returned by the request function
*
* @return string A single string with the translation
*/
protected static function getSentencesFromJSON($json)
{
$sentencesArray = json_decode($json, true);
$sentences = "";
foreach ($sentencesArray["sentences"] as $s) {
$sentences .= isset($s["trans"]) ? $s["trans"] : '';
}
return $sentences;
}
Задача ещё не решена.
Других решений пока нет …