db_update_cs6_para.php 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  1. <?php
  2. require_once "../public/_pdo.php";
  3. require_once "../path.php";
  4. if (PHP_SAPI == "cli") {
  5. echo $argc;
  6. if($argc>=3){
  7. $from=$argv[1];
  8. $to=$argv[2];
  9. echo "From: {$from} To:{$to}";
  10. }
  11. else if($argc>=1){
  12. $from=0;
  13. $to = 216;
  14. echo "生成全部217本书";
  15. }
  16. else{
  17. echo "参数错误";
  18. exit;
  19. }
  20. }
  21. else{
  22. }
  23. $g_wordCounter=0;
  24. $g_wordIndexCounter=0;
  25. $iAllWordIndex=array();
  26. $sAllWord=array();
  27. $dirLog=_DIR_LOG_."/";
  28. $dirXmlBase=_DIR_PALI_CSV_."/";
  29. $filelist=array();
  30. $fileNums=0;
  31. $log="";
  32. echo " $from \n";
  33. if(($handle=fopen("filelist.csv",'r'))!==FALSE){
  34. while(($filelist[$fileNums]=fgetcsv($handle,0,','))!==FALSE){
  35. $fileNums++;
  36. }
  37. }
  38. if($to==0 || $to>=$fileNums) $to=$fileNums-1;
  39. $db_file = _FILE_DB_PAGE_INDEX_;
  40. PDO_Connect("sqlite:$db_file");
  41. for($iFile=$from;$iFile<=$to;$iFile++){
  42. echo "{$iFile}\n";
  43. $FileName=$filelist[$iFile][1].".htm";
  44. $fileId=$filelist[$iFile][0];
  45. $inputFileName=$FileName;
  46. $outputFileNameHead=$filelist[$iFile][1];
  47. $bookId=$filelist[$iFile][2];
  48. $dirXml=$outputFileNameHead."/";
  49. $xmlfile = $inputFileName;
  50. echo "doing:".$xmlfile."\n";
  51. $log=$log."$iFile,$FileName,open\r\n";
  52. $arrInserString=array();
  53. // 打开文件并读取数据
  54. $irow=0;
  55. if(($fp=fopen($dirXmlBase.$dirXml.$outputFileNameHead.".csv", "r"))!==FALSE){
  56. // 开始一个事务,关闭自动提交
  57. $PDO->beginTransaction();
  58. $query="INSERT INTO cs6_para ('book','para','bookid','cspara') VALUES ( ? , ? , ? , ? )";
  59. $stmt = $PDO->prepare($query);
  60. $currCSPara=0;
  61. $currPara = 0;
  62. $iCount = 0;
  63. // 提交更改
  64. try{
  65. while(($data=fgetcsv($fp,0,','))!==FALSE){
  66. $irow++;
  67. if($irow>1){
  68. if($data[6]==".ctl." && mb_substr($data[5],0,4,"UTF-8")=="para"){
  69. $currCSPara= (int)mb_substr($data[5],4,NULL,"UTF-8");
  70. }
  71. $para = $data[3];
  72. $arr = explode("-",$currCSPara);
  73. if($currPara != $data[3] && $data[6] != ".ctl."){
  74. $currPara=(int)$data[3];
  75. $book = mb_substr($data[2],1, null ,"UTF-8");
  76. $para = $currPara;
  77. $csPara = $currCSPara;
  78. $book2 = 0;
  79. if(count($arr)>1){
  80. $iBegin = (int)$arr[0];
  81. $iEnd = (int)$arr[1];
  82. }
  83. else{
  84. $iBegin = (int)$arr[0];
  85. $iEnd = (int)$arr[0];
  86. }
  87. if($iEnd<$iBegin){
  88. $iEnd =(int)(mb_substr($arr[0],0,0-mb_strlen($arr[1])).$arr[1]);
  89. }
  90. $arr1=array();
  91. for($i=$iBegin; $i<=$iEnd; $i++){
  92. $arr1[] = $i;
  93. }
  94. foreach ($arr1 as $key => $value) {
  95. $stmt->execute(array($book,$para,$book2,$value));
  96. $iCount++;
  97. }
  98. }
  99. }
  100. }
  101. $PDO->commit();
  102. }catch (Exception $e){
  103. var_dump($e);
  104. $PDO->rollback();
  105. }
  106. if (!$stmt || ($stmt && $stmt->errorCode() != 0)) {
  107. $error = PDO_ErrorInfo();
  108. echo "error - $error[2] \n";
  109. $log.="$from, $FileName, error, $error[2] \r\n";
  110. }
  111. else{
  112. echo "updata recorders.\n";
  113. $log.="updata recorders.\r\n";
  114. }
  115. fclose($fp);
  116. echo "单词表load:".$dirXmlBase.$dirXml.$outputFileNameHead.".csv\n";
  117. }
  118. else{
  119. echo "can not open csv file. filename=".$dirXmlBase.$dirXml.$outputFileNameHead.".csv";
  120. }
  121. }
  122. echo "齐活!功德无量!all done!";
  123. ?>
  124. </body>
  125. </html>