0

WAMPのcmd.exe[コマンドライン]からこのスクリプトを実行すると、次のようになります。

 Could not retrieve data from OpenAmplify.file_get_contents(http://portal
tnx.openamplify.com/AmplifyWeb/AmplifyThis?apiKey=MY_API_KEY_GOES_HERE): failed to open stream: HTTP request failed!  (C:\wamp\www\Learning_Query_Pa
th\src\QueryPath\QueryPath.php: 4053)

このスクリプトをローカルホストからFirefoxブラウザ[v19.0]を介して実行すると、次のようになります。

Fatal error: Maximum execution time of 30 seconds exceeded in C:\wamp\www\Learning_Query_Path\src\QueryPath\QueryPath.php on line 4525

これが私が使用したスクリプトです:

    <?php

require 'src/QueryPath/QueryPath.php';

$url = 'http://portaltnx.openamplify.com/AmplifyWeb/AmplifyThis?';
$key = 'I_PUT_MY_API_KEY_HERE';
$text = 'I_PUT_TEXT_HERE';

$params = array(
  'apiKey' => $key,
);

$url .= http_build_query($params);

$options = array(
  'http' => array(
    'method' => 'POST',
    'user_agent' => 'QueryPath/2.0',
    'header'  => 'Content-type: application/x-www-form-url-encoded',
    'content' => http_build_query(array('inputText' => $text)),
  ),
);

$context = stream_context_create($options);
try {
  $qp = qp($url, NULL, array('context' => $context));
}
catch (Exception $e) {
  print "Could not retrieve data from OpenAmplify." . $e->getMessage();
  exit;
}

    $qp->find('ProperNouns>TopicResult>Topic>Name')->slice(0, 20);


$out = qp(QueryPath::HTML_STUB, 'body')->append('<ul/>')->find('ul');


foreach ($qp as $name) {
  $out->append('<li>' . $name->text() . '</li>');
}

$out->writeHTML();


?>

どうすればこれを機能させることができますか?

PS Open Amplifyは、提供されたテキストを受け取り、それを分析した後、それに関する多くの興味深いものを返すWebサービスです。私はこれを機能させることに本当に熱心であり、QueryPathの大ファンなので、QueryPathで機能させる方法についての提案にのみ興味があります。

4

2 に答える 2

0

タイムアウトを延長するには、「http」オプション内で「timeout」の名前と値のペアを使用できます。たとえば、ここに配置します。

'content' => ...
'timeout' => 120.0

(参照:http ://www.php.net/manual/en/context.http.php )

私の推測では、しかし、何か他のものが間違っていると思います。file_get_contents()代わりにを使用qp()してファイルをフェッチし、文字列をQueryPathに渡すことができます。少なくともその時点から、QueryPathではなく、ネットワークの問題をデバッグすることになります。

OpenAmplifyを使用するために、CURL APIを使用することもできましたが、これは組み込みのPHPストリームラッパーよりも少し複雑です(参照:http ://www.php.net/manual/en/ book.curl.php)。

于 2013-02-25T17:12:10.653 に答える
0

このURLを押してみてください。これは機能するはず ですhttp://portaltnx20.openamplify.com/AmplifyWeb_v21/AmplifyThis

于 2013-02-25T15:33:21.437 に答える