0
我擁有的是從數據庫備份的數據。看起來像這樣:從文本生成原始文件
CREATE TABLE `accFiles` (
`accfile_id` int(11) NOT NULL AUTO_INCREMENT,
`accfile_accountId` smallint(5) unsigned NOT NULL,
`accfile_name` varchar(100) NOT NULL,
`accfile_type` varchar(100) NOT NULL,
`accfile_size` int(11) NOT NULL,
`accfile_content` mediumblob NOT NULL,
`accfile_extension` varchar(10) NOT NULL,
PRIMARY KEY (`accfile_id`),
KEY `IDX_accountId` (`accfile_accountId`)
) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;
INSERT INTO `accFiles` VALUES(1,6,"test.txt","text/plain",27,"test\ntest\ntest\ntest\ntsert","TXT");
INSERT INTO `accFiles` VALUES(2,6,"test.txt","text/plain",27,"test\ntest\ntest\ntest\ntsert","TXT");
CREATE TABLE.....
現在我已經寫了PHP腳本,獲取內容部分和由3值提供了具有相同名稱的文件中寫入它。編寫php是爲了讓第一行獲取名稱和內容,並創建一個具有該名稱的文件並將內容寫入其中。
<?php
//error_reporting(0);
$file = $argv[1]; //read console parameter
$filep = file_get_contents($file);//get content
$s1="INSERT INTO `accFiles`"; //Search the accfile part
$pos=strpos($filep,$s1); //first File
$end=strrpos($filep,$s1); //last file
$ind=0;
do{ // walk through file by file
$pos2=strpos($filep,$s1,$pos + 5);
$whant[$ind]=substr($filep,$pos+29,$pos2-$pos-30);
$ind++;
$pos=$pos2;
}while(is_numeric($pos2) && $end>=$pos2);
$whant[$ind-1]=substr($filep,$end+29,strpos($filep,"CREATE TABLE",$end)-$end-32); // last file
//echo $whant[0]."\n";
//echo $whant[1]."\n";
$theidd = explode(",",$whant[0]);
$filename = trim($theidd[2],"\"");
$input = substr($whant[0],strpos($whant[0],$theidd[5])+1,strrpos($whant[0],",")-strpos($whant[0],$theidd[5])-2); //get content of file 1
$myfile = fopen(dirname(__FILE__)."/".$filename, "w",1);
fwrite($myfile, $input);
fclose($myfile);
?>
所以,我認爲這個問題是他究竟寫數據,如它是在新的txt文件,所以內容是測試\ NTEST \ n個真正新線insted的。 有趣的部分是當我有.jpg文件或.gif他們存儲完全一樣的方式內容是漫長的,我會張貼在這裏。 但是我希望能夠得到原始圖片或者它回來的文件。
抱歉,但我只能用PHP文件工作和備份文件我有數據庫。 – GEnGEr 2014-09-04 11:29:09