无法将 API 中提取的数据显示为 HTML 表单
Unable to display extracted data from API into HTML form
我开始使用 AlchemyAPI 键从 url 中提取 json/xml 数据。炼金术 url api 键在与查询的 url 一起输入时效果很好,但我希望 url 部分来自用户端,所以首先我创建了一个表单以下代码:
<form method="post" class="SearchCSS" action="/NENSearch.php?go" id="categorizer">
<h1>Enter your Queries</h1>
<input type="text" name="Search" placeholder="Enter the article URL">
<input type="submit" value="Search">
</form>
然后使用 PHP 将用户提交的 url 传递到炼金术 api 的端点并将 json 数据存储到变量中,然后显示解析的数据使用以下代码(问题:代码实际上不显示任何内容):
<?php
echo "this works here";
if(isset($_POST['submit'])){
if(isset($_GET['go'])){
if(preg_match("%^((http?://)|(www\.))([a-z0-9-].?)+(:[0-9]+)?(/.*)?$%i", $_POST['Search'])){
$url=$_POST['Search'];}
echo $url;}
$response = file_get_contents("http://gateway-a.watsonplatform.net/calls/url/URLGetCombinedData?extract=page-image,entity,keyword,taxonomy&apikey=1f324507a9d516d9429e14f970ccc83de9df2&showSourceText=1&sentiment=1&outputMode=json"ations=1&url='.$url.'");
$response = json_decode($response);
echo $response;}
echo "<br/> this is not working";
?>
基本的炼金术API url 我用的是这样的(drupal url 添加在最后):
http://access.alchemyapi.com/calls/url/URLGetRankedTaxonomy?apikey=1f324507a9d51694a29e14f970ccc83de9df2&outputMode=jsonp&knowledgeGraph=1&extract=taxonomy&url=https://www.drupal.org/node/2148541
我刚开始使用 API,任何将解析的 json 数据显示为 html 形式的帮助都会有很大帮助。提前致谢。 :)
"(Problem: Code actually doesn't display anything)"
那是因为这个条件语句中的所有内容都不会执行:
if(isset($_POST['submit'])){...}
由于没有带有 "submit" 名称属性的输入。
您需要做的是命名您提交的输入:
<input name="submit" type="submit" value="Search">
如果将错误报告设置为捕获并显示在您的系统上,将会抛出未定义的索引提交通知。
参考:
还要确保 $_GET['go']
正确填充。错误报告也会让您知道是否正确。
旁注:
在你的开头 if{...}
条件语句中使用了 else{...}
,会被触发。
您还应该对照 $_POST['Search']
检查内容,是否已设置或不为空。
我开始使用 AlchemyAPI 键从 url 中提取 json/xml 数据。炼金术 url api 键在与查询的 url 一起输入时效果很好,但我希望 url 部分来自用户端,所以首先我创建了一个表单以下代码:
<form method="post" class="SearchCSS" action="/NENSearch.php?go" id="categorizer">
<h1>Enter your Queries</h1>
<input type="text" name="Search" placeholder="Enter the article URL">
<input type="submit" value="Search">
</form>
然后使用 PHP 将用户提交的 url 传递到炼金术 api 的端点并将 json 数据存储到变量中,然后显示解析的数据使用以下代码(问题:代码实际上不显示任何内容):
<?php
echo "this works here";
if(isset($_POST['submit'])){
if(isset($_GET['go'])){
if(preg_match("%^((http?://)|(www\.))([a-z0-9-].?)+(:[0-9]+)?(/.*)?$%i", $_POST['Search'])){
$url=$_POST['Search'];}
echo $url;}
$response = file_get_contents("http://gateway-a.watsonplatform.net/calls/url/URLGetCombinedData?extract=page-image,entity,keyword,taxonomy&apikey=1f324507a9d516d9429e14f970ccc83de9df2&showSourceText=1&sentiment=1&outputMode=json"ations=1&url='.$url.'");
$response = json_decode($response);
echo $response;}
echo "<br/> this is not working";
?>
基本的炼金术API url 我用的是这样的(drupal url 添加在最后): http://access.alchemyapi.com/calls/url/URLGetRankedTaxonomy?apikey=1f324507a9d51694a29e14f970ccc83de9df2&outputMode=jsonp&knowledgeGraph=1&extract=taxonomy&url=https://www.drupal.org/node/2148541
我刚开始使用 API,任何将解析的 json 数据显示为 html 形式的帮助都会有很大帮助。提前致谢。 :)
"(Problem: Code actually doesn't display anything)"
那是因为这个条件语句中的所有内容都不会执行:
if(isset($_POST['submit'])){...}
由于没有带有 "submit" 名称属性的输入。
您需要做的是命名您提交的输入:
<input name="submit" type="submit" value="Search">
如果将错误报告设置为捕获并显示在您的系统上,将会抛出未定义的索引提交通知。
参考:
还要确保 $_GET['go']
正确填充。错误报告也会让您知道是否正确。
旁注:
在你的开头 if{...}
条件语句中使用了 else{...}
,会被触发。
您还应该对照 $_POST['Search']
检查内容,是否已设置或不为空。