/** * Tumbler Dashboard API Read * * @param string $email tumblr account email address * @param string $password tumblr account password * @return void */ function fetch_tumblr_dashboard_xml($email, $password) { global $config; $config['DEBUG'] && error_log('[DEBUG] REQUESTING API READ!'); // Prepare POST request $request_data = http_build_query(array('email' => $email, 'password' => $password, 'generator' => 'tumblr Dashboard Feed 1.1', 'num' => '50')); // Send the POST request (with cURL) $ch = curl_init('http://www.tumblr.com/api/dashboard'); curl_setopt($ch, CURLOPT_POST, TRUE); curl_setopt($ch, CURLOPT_USERAGENT, 'tumblr-dashboard-rss 1.1'); curl_setopt($ch, CURLOPT_POSTFIELDS, $request_data); curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); $result = curl_exec($ch); $status = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); // Check for success if ($status == 200) { // echo "Success! The output is $result.\n"; // do process/output $posts = read_xml($result); output_rss($posts); // cache xml file $config['cache']['request'] && cache_xml($result); } else { if ($status == 403) { echo 'Bad email or password'; } else { if ($status == 503) { echo 'Rate Limit Exceded or Service Down'; } else { echo "Error: {$result}\n"; } } } }
function read_worksheet($out, $file, $options = array()) { $ext = pathinfo($file, PATHINFO_EXTENSION); if (isset($options["read"]) && $options["read"] != $ext) { fputs(STDERR, "Warning: The file extension was ignored to adopt {$options["read"]}.\n"); $ext = $options["read"]; } switch (strtolower($ext)) { case "raw": $in = fopen($file, "r"); while (($line = fgets($in)) !== false) { fputs($out, $line); } fclose($in); break; case "csv": $options["delimiter"] = ","; read_csv($out, $file, $options); break; case "tsv": $options["delimiter"] = "\t"; read_csv($out, $file, $options); break; case "xlsx": read_excel($out, $file, $options); break; case "json": read_json($out, $file, $options); break; case "yml": case "yaml": read_yaml($out, $file, $options); break; case "xml": read_xml($out, $file, $options); break; default: print "Error[{$ext}]: No reader is available.\n"; break; } return; }
function prepare_events($file, $shifttype_id) { global $rooms_import; $data = read_xml($file); $rooms = sql_select("SELECT * FROM `Room`"); $rooms_db = array(); foreach ($rooms as $room) { $rooms_db[$room['Name']] = $room['RID']; } $events = $data->vcalendar->vevent; $shifts_pb = array(); foreach ($events as $event) { $event_pb = $event->children("http://pentabarf.org"); $event_id = trim($event_pb->{'event-id'}); $shifts_pb[$event_id] = array('shifttype_id' => $shifttype_id, 'start' => DateTime::createFromFormat("Ymd\\THis", $event->dtstart)->getTimestamp(), 'end' => DateTime::createFromFormat("Ymd\\THis", $event->dtend)->getTimestamp(), 'RID' => $rooms_import[trim($event->location)], 'title' => trim($event->summary), 'URL' => trim($event->url), 'PSID' => $event_id); } $shifts = sql_select("SELECT * FROM `Shifts` WHERE `PSID` IS NOT NULL ORDER BY `start`"); $shifts_db = array(); foreach ($shifts as $shift) { $shifts_db[$shift['PSID']] = $shift; } $shifts_new = []; $shifts_updated = []; foreach ($shifts_pb as $shift) { if (!isset($shifts_db[$shift['PSID']])) { $shifts_new[] = $shift; } else { $tmp = $shifts_db[$shift['PSID']]; if ($shift['shifttype_id'] != $tmp['shifttype_id'] || $shift['title'] != $tmp['title'] || $shift['start'] != $tmp['start'] || $shift['end'] != $tmp['end'] || $shift['RID'] != $tmp['RID'] || $shift['URL'] != $tmp['URL']) { $shifts_updated[] = $shift; } } } $shifts_deleted = array(); foreach ($shifts_db as $shift) { if (!isset($shifts_pb[$shift['PSID']])) { $shifts_deleted[] = $shift; } } return array($shifts_new, $shifts_updated, $shifts_deleted); }
<?php //Login IPX800 //$username= »nomutilisateur »; $password= »motdepasse »; include 'functions.php'; // Paramamètrezs login BDD $user = '******'; $passwd = 'toor'; $host = 'localhost'; $db = 'ipx800v3'; //Table $ipx800v3 = 'ipx800v3'; //Lecturedu fichier XML $xml = read_xml('http://192.168.1.57:80/status.xml', 'response', array("day", "time0", "count0", "count1", "count2")); if (is_array($xml)) { foreach ($xml as $row) { $day = $row[0]; $time0 = $row[1]; //$time0=date('H:i:s',gmmktime($time0)); $counter1 = $row[2]; $counter2 = $row[3]; $counter3 = $row[4]; } } else { print_r($xml); } $date = date('Y-m-d'); mysql_connect($host, $user, $passwd) or die("erreur de connexion au serveur {$host}"); mysql_select_db($db) or die("erreur de connexion à la base de données"); //Transfert des données de l’IPX800 V3 dans la BDD $parameter = 'counter0';
<?php function read_xml($skip_white) { $xml = file_get_contents(__DIR__ . "/skipwhite.xml"); $parser = xml_parser_create(); xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0); xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, $skip_white); xml_parser_set_option($parser, XML_OPTION_TARGET_ENCODING, "UTF-8"); $array = array(); $index = array(); xml_parse_into_struct($parser, $xml, $array, $index); return $array; } function find_node($array, $node) { foreach ($array as $key => $val) { if ($val["tag"] == $node) { return $val; } } return array(); } // WITH XML_OPTION_SKIP_WHITE=0 WORKS FINE $array = read_xml(0); $node = find_node($array, "query"); print_r($node); // WITH XML_OPTION_SKIP_WHITE=1 FAILS $array = read_xml(1); $node = find_node($array, "query"); print_r($node);
function load_xml($f, $o = '') { $xml = read_xml($f); if ($xml) { foreach ($xml as $k => $v) { $va = utf8_decode_b($v->title); $dat = $v->pubDate; if (!$dat) { $dat = $v->updated; } $lnk = $v->link; if (!$lnk) { $lnk = $v->guid; } if (!$lnk) { $lnk = $v->link[0]['href']; } if (!$lnk) { $lnk = $v->childnode['href']; } if (!$dat) { $dc = $v->children('http://purl.org/dc/elements/1.1/'); $dat = $dc->date; } if ($o) { $txt = utf8_decode_b($v->description); } $ret[] = array($va, $lnk, $dat, $txt); } } return $ret; }