$cols) echo "#T:$quotchar$tn$quotchar:".join(',', $cols).":::\n"; exit(0); } if ($cmd == 'xml') { $fp = fopen($argv[5], 'r'); if (!$fp) { echo "Cannot open file ".$argv[5]."\n"; exit(1); } $doc = new DOMDocument(); $doc->xmlStandalone = true; $doc->formatOutput = true; $doc->encoding = 'UTF-8'; $root = $doc->createElement('data'); $doc->appendChild($root); while (!feof($fp)) { $line = explode(':', fgets($fp)); if (count($line) < 3 || $line[0] != '#T') // empty row? continue; $tab = $line[1]; $cols = $line[2]; $sql = "select $cols from $tab"; $res = ibase_query($sql); if (!$res) { echo $sql."\n\n".ibase_errmsg(); exit(2); } while ($row = ibase_fetch_assoc($res)) { $tablenode = $doc->createElement($tab); foreach ($row as $colname => $colvalue) { if ($colvalue == null) continue; $colnode = $doc->createElement(trim($colname)); $tn = $doc->createTextNode(trim($colvalue)); $colnode->appendChild($tn); $tablenode->appendChild($colnode); } $root->appendChild($tablenode); } } echo $doc->saveXML(); }