Integrating PHP Curl

377 views Asked by At

I have the code below which calls up an MySQLi and presents it in XML form in my browser.

The next stage is that instead of presenting it in my browser I want to send it to another IP address using PHP Curl. Please can someone help me with the extra code needed to do that.

<?php

$mysqli_connection = new MySQLi('localhost', 'root', 'secret', 'edgeserver');
if ($mysqli_connection->connect_error) {
   echo "Not connected, error: " . $mysqli_connection->connect_error;
}

$sql = "SELECT SessionLogs.sessionid, SessionLogs.eventid, BetStatus.BetStatus, EventStatus.EventStatus, SessionLogs.activestatusid
FROM SessionLogs INNER JOIN
EventStatus ON SessionLogs.eventstatusid = EventStatus.EventStatusID INNER JOIN
BetStatus ON SessionLogs.betstatusid = BetStatus.BetStatusID
where ActiveStatusID = 1
";




$res = $mysqli_connection->query($sql);

$xml = new XMLWriter();

$xml->openURI("php://output");
$xml->startDocument();
$xml->setIndent(true);

$xml->startElement('Alive');
$xml->writeAttribute('timestamp', date('c'));

if($res === FALSE) { 
    die(mysqli_error()); // TODO: better error handling
}

while ($row = mysqli_fetch_assoc($res)) {
  $xml->startElement("Event");

  $xml->writeAttribute('sessionid', $row['sessionid']);
  $xml->writeAttribute('eventid', $row['eventid']);
  $xml->writeAttribute('BetStatus', $row['BetStatus']);
  $xml->writeAttribute('EventStatus', $row['EventStatus']);
  $xml->writeAttribute('activestatusid', $row['activestatusid']);

  $xml->endElement();
}

$xml->endElement();
$xml->endElement();

header('Content-type: text/xml');
$xml->flush();

?>

Please help. Thanks.

2

There are 2 answers

1
Avinash On BEST ANSWER

You can send xml data using curl with following code

$input_xml = ''; //XML Data 
$url=''; // URL


$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_POSTFIELDS,
            "xmlRequest=" . $input_xml);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 300);
$data = curl_exec($ch);
curl_close($ch);
0
Inceddy On

Use $xml->openMemory(); and $xmlString = $xml->outputMemory() to catch the cache of your XMLWriter-Object (Documentation).