| 743 | | |
| | 743 | case 'dump': |
| | 744 | // Make sure this is a POST |
| | 745 | if(!isset($_POST['dumpact'])) { |
| | 746 | die('Sorry, you can\'t access this via a GET'); |
| | 747 | } |
| | 748 | $tbl = array('"','"'); |
| | 749 | error_reporting(E_ALL); |
| | 750 | rss_require('schema.php'); |
| | 751 | $tables=getExpectedTables(); |
| | 752 | unset($tables['cache']); |
| | 753 | //$tables=array('channels','tag','config'); |
| | 754 | $bfr=''; |
| | 755 | $bfr .= '<'.'?xml version="1.0" encoding="UTF-8"?'.'>'."\n"; |
| | 756 | $bfr .= '<dump prefix="'.getTable('').'" date="'.date('r').'">'."\n"; |
| | 757 | foreach($tables as $table => $prefixed) { |
| | 758 | $rs = rss_query("select * from $prefixed"); |
| | 759 | $bfr .="<$table>\n"; |
| | 760 | while($row=rss_fetch_assoc($rs)) { |
| | 761 | $r="<row "; |
| | 762 | foreach($row as $key => $val) { |
| | 763 | $val=htmlspecialchars($val); |
| | 764 | $r.=" $key=\"$val\" "; |
| | 765 | } |
| | 766 | $r .= "/>\n"; |
| | 767 | $bfr .=$r; |
| | 768 | } |
| | 769 | $bfr .="</$table>\n"; |
| | 770 | } |
| | 771 | $bfr .='</dump>'."\n"; |
| | 772 | $gzdata = gzencode($bfr, 9); |
| | 773 | $tempfname=tempnam("/tmp", "rss.dump").'.xml.gz'; |
| | 774 | $df=fopen($tempfname,'w'); |
| | 775 | fwrite($df, $gzdata); |
| | 776 | fclose($df); |
| | 777 | die($tempfname); |
| | 778 | break; |