2
我想在三个简单的文本上使用雅虎内容分析。雅虎YQL文字大小限制
由于它的作品,但如果我增加SUBSTR命令字符串的长度,我得到:
{"error":{"lang":"en-US","description":"Unknown error","status":"500"}}
任何人都可以解释为什么这是怎么回事?根据文档,api应该接受更大的字符串。
而且我想不通为什么限制为每串不同。有任何想法吗?
这里是我的代码
<?php
/**
* Function to use Yahoo to analyse some simple text
* @param String $text
* @param String $format
* @return String $content
*/
function yahoo_content_analysis($text, $format = 'json')
{
$url = "http://query.yahooapis.com/v1/public/yql";
$query = 'SELECT * FROM contentanalysis.analyze WHERE text = "' . $text . '"';
$characters = array(' ', '=', '"');
$replacements = array('%20', '%3D', '%22');
$query = str_replace($characters, $replacements, $query);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "q=$query&format=$format");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_AUTOREFERER, true);
$response = curl_exec($ch);
$headers = curl_getinfo($ch);
curl_close($ch);
return $response;
}
// Text taken from wikipedia
$text1 = 'Computer programming (often shortened to programming or coding) is the process of designing, writing, testing, debugging, and maintaining the source code of computer programs.';
$text2 = 'For the thousands of refugees and migrants landing on its beaches every day Greece Lesbos island is a step to safety and a brighter future in Europe';
$text3 = 'Hurricane Gert was a large tropical cyclone that caused extensive flooding throughout Central America and Mexico in September 1993. It originated over the southwestern Caribbean Sea and briefly attained tropical storm strength before crossing Nicaragua, Honduras, and the Yucatán Peninsula.';
// {"error":{"lang":"en-US","description":"Unknown error","status":"500"}}
$text1 = substr($text1, 0, 120);
echo $text1 . PHP_EOL;
$response1 = yahoo_content_analysis($text1);
echo $response1 . PHP_EOL; // json
echo PHP_EOL;
$text2 = substr($text2, 0, 116);
echo $text2 . PHP_EOL;
$response2 = yahoo_content_analysis($text2);
echo $response2 . PHP_EOL; // json
echo PHP_EOL;
$text3 = substr($text3, 0, 124);
echo $text3 . PHP_EOL;
$response3 = yahoo_content_analysis($text3);
echo $response3 . PHP_EOL; // json
啊,不,我错了,我认为这只是偶然,我是看到了串并没有产生错误,它是如你所说,每串不同。也许这就是yahoo根据产生错误的字符串返回的数据量。在这种情况下,雅虎应用程序本身就是纯粹的破坏(显然,目前只有2人注意到了它) – user5449291