从另一台服务器发送并接收JSON到<>并以HTML格式呈现答案(PHP脚本)

时间:2017-01-12 10:53:16

标签: php html json curl

我想创建PHP脚本,将HTML表单(JSON格式)中的数据(文本)发送到另一台服务器,并在重新格式化的JSON中接收数据(此服务器仅发送JSON)。我已经成为这样一个脚本的一部分,但是我将问题呈现为HTML。

我的代码:(index.php)

<fieldset>
	<legend>Form</legend>
	<form action="index.php" method="post"><textarea cols="30" name="inputtext" rows="10"> </textarea><br /> <input name="wczytaj" type="submit" value="submit" /></form>
</fieldset>

<?php

$data = array(
  "rescaleWeights"=>"true",
  "opinions"=> array($_POST['inputtext'])
  
);

$url_send ="http://xxx.xxx.xxx.xxx:9000/sen-analysis";
$str_data = json_encode($data); 

function sendPostData($url, $str_data){
  $ch = curl_init($url);
  
  curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");  
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($ch, CURLOPT_POSTFIELDS,$str_data);
  curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
  curl_setopt($ch, CURLOPT_HEADER, true);
  curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/json"));
  $result = curl_exec($ch);
  curl_close($ch);  
  return $result;
}

echo " " . sendPostData($url_send, $str_data);

?>

空白表格的回复是:

HTTP/1.1 200 OK Server: Apache-Coyote/1.1 Content-Type: application/json;charset=UTF-8 Transfer-Encoding: chunked Date: Thu, 12 Jan 2017 10:42:26 GMT {"parsedOpinions":[],"sentimentTypeSummaries":[]}

文字的回应 Operacja Iskra - ofensywna operacja wojsk radzieckich podczas IIwojnyświatowej,którejcelembyłoprzerwanietrwającejodwześnia1941r.niemieckiej blokady Leningradu.Prace nad przygotowaniem operacjirozpoczęłysię wkrótcePOzakończeniunieudanej ofensywysiniawińskiej。PorażkaNiemców瓦特bitwie stalingradzkiej瓦特końcu1942河,znaczącoosłabiłazdolnościbojowe Wehrmachtu呐froncie wschodnim:W styczniu 1943河wojskaZwiązkuRadzieckiegoplanowałyLUBprzeprowadzałydziałaniaofensywnewzdłużcałejlinii frontu niemiecko-radzieckiego,瓦特szczególności naterenachpołudniowejRosji.OperacjaIskrastałasięczęściąszerszej,zimowejkontrofensywysiłradzieckichprzeprowadzonejnaprzełomielat1942-1943 [5] is:

HTTP/1.1 200 OK Server: Apache-Coyote/1.1 Content-Type: application/json;charset=UTF-8 Transfer-Encoding: chunked Date: Thu, 12 Jan 2017 10:43:53 GMT {"parsedOpinions":[{"type":"NEGATIVE","weight":-1.0,"panelClass":"negative-sentiment10","heading":"Operacja Iskra – ofensywna operacja wojsk radzieckich podczas II wojny światowej, której celem było przerwanie trwającej od września 1941 r. niemieckiej blokady Leningradu. ","content":"Operacja Iskra – ofensywna operacja wojsk radzieckich podczas II wojny światowej, której celem było przerwanie trwającej od września 1941 r. niemieckiej blokady Leningradu. Prace nad przygotowaniem operacji rozpoczęły się wkrótce po zakończeniu nieudanej ofensywy siniawińskiej. Porażka Niemców w bitwie stalingradzkiej w końcu 1942 r., znacząco osłabiła zdolności bojowe Wehrmachtu na froncie wschodnim. W styczniu 1943 r. wojska Związku Radzieckiego planowały lub przeprowadzały działania ofensywne wzdłuż całej linii frontu niemiecko-radzieckiego, w szczególności na terenach południowej Rosji. Operacja Iskra stała się częścią szerszej, zimowej kontrofensywy sił radzieckich przeprowadzonej na przełomie lat 1942–1943[5] ","collocations":[{"cssClass":"positive","weight":58.0,"content":"częścią szerszej","type":"POSITIVE"},{"cssClass":"negative","weight":55.0,"content":"osłabiła zdolności bojowe","type":"NEGATIVE"},{"cssClass":"negative","weight":14.0,"content":"przerwanie trwającej","type":"NEGATIVE"}]}],"sentimentTypeSummaries":[{"name":"POSITIVE","collocations":[{"type":"POSITIVE","content":"częścią szerszej","weight":58.0,"count":1}]},{"name":"NEGATIVE","collocations":[{"type":"NEGATIVE","content":"osłabiła zdolności bojowe","weight":55.0,"count":1},{"type":"NEGATIVE","content":"przerwanie trwającej","weight":14.0,"count":1}]}]}

有没有办法在HTML中查看此答案?没有关于JSON之前状态的其他信息?

1 个答案:

答案 0 :(得分:1)

你可以使用php对象然后转换成json:

$obj = new stdClass(); $obj->someName= $_POST['inputtext']; $str_data = json_encode($obj); $sendPostData($url_send, $str_data);