PHP/YQL/GET:URL太长

PHP/YQL/GET:URL太长,php,json,http,file-get-contents,yql,Php,Json,Http,File Get Contents,Yql,我在PHP中使用YQL和文件内容来发送查询。我使用YQL进行术语提取,因此我的查询包含大量文本。不幸的是,这会导致URL过长,并返回一个错误。如果我使用更少的文本,效果会更好 是在YQL上使用SELECT语句和GET的唯一方法,除了使用少量文本之外,还有什么其他选项?为什么不使用CURL而不是使用GET变量进行查询 $c = curl_init("http:/query.yahooapis.com/v1/public/yql?q=myverylongquery&format=json")

我在PHP中使用YQL和文件内容来发送查询。我使用YQL进行术语提取,因此我的查询包含大量文本。不幸的是,这会导致URL过长,并返回一个错误。如果我使用更少的文本,效果会更好


是在YQL上使用SELECT语句和GET的唯一方法,除了使用少量文本之外,还有什么其他选项?

为什么不使用CURL而不是使用GET变量进行查询

$c = curl_init("http:/query.yahooapis.com/v1/public/yql?q=myverylongquery&format=json");
curl_setopt($c, CURLOPT_RETURNTRANSFERT, 1); // returns the data into the variable
curl_setopt($c, CURLOPT_CONNECTTIMEOUT, 20); // query times out after 20 seconds

$data = json_decode(curl_exec($c)); // I asked for data format to be in json in the query
curl_close($c);
这是我在YQL上使用SELECT语句和GET的唯一方法,除了使用少量文本之外,还有什么其他选项

正如其他人所说,您可以使用POST请求而不是GET。下面是一个使用流上下文的
file\u get\u contents()
的示例。cURL或任何其他可以发出POST请求的远程内容获取代码也可以正常工作

$ctx = stream_context_create(array('http' => array(
    'method'  => 'POST',
    'header'  => 'Content-Type: application/x-www-form-urlencoded',
    'content' => http_build_query(array(
        'context' => $my_really_really_huge_context,
        'query'   => $query,
        'format'  => 'json',
        'q'       => 'SELECT * FROM search.termextract WHERE context=@context and query=@query'
    ))
)));

$json = file_get_contents('http://query.yahooapis.com/v1/public/yql', false, $ctx);

试着用卷发贴?文件\u获取\u流中的内容?您是否尝试过POST请求?