Update Pali Text Use CSV

Home

From:
To:
$from"; if (($handle = fopen("filelist.csv", 'r')) !== false) { while (($filelist[$fileNums] = fgetcsv($handle, 0, ',')) !== false) { $fileNums++; } } if ($to == 0 || $to >= $fileNums) { $to = $fileNums - 1; } $FileName = $filelist[$from][1] . ".htm"; $fileId = $filelist[$from][0]; $fileId = $filelist[$from][0]; $dirLog = _DIR_LOG_ . "/"; $dirDb = "/"; $inputFileName = $FileName; $outputFileNameHead = $filelist[$from][1]; $bookId = $filelist[$from][2]; $vriParNum = 0; $wordOrder = 1; $dirXmlBase = _DIR_PALI_CSV_ . "/"; $dirPaliTextBase = _DIR_PALI_HTML_ . "/"; $dirXml = $outputFileNameHead . "/"; $xmlfile = $inputFileName; echo "doing:" . $xmlfile . "
"; $log = $log . date("Y-m-d h:i:sa") . ",$from,$FileName,open\r\n"; $arrInserString = array(); // 打开vri html文件并读取数据 $pali_text_array = array(); //vri text if (($fpPaliText = fopen($dirPaliTextBase . $xmlfile, "r")) !== false) { while (($data = fgets($fpPaliText)) !== false) { array_push($pali_text_array, $data); } fclose($fpPaliText); echo "pali text load:" . $dirPaliTextBase . $xmlfile . "
"; } else { echo "can not pali text file. filename=" . $dirPaliTextBase . $xmlfile; } // 打开csv文件并读取数据 $inputRow = 0; if (($fp = fopen(_DIR_PALI_TITLE_ . "/" . ($from + 1) . "_title.csv", "r")) !== false) { while (($data = fgetcsv($fp, 0, ',')) !== false) { if ($inputRow > 0) { $params = $data; array_push($arrInserString, $params); } $inputRow++; } fclose($fp); echo "单词表load:" . $dirXmlBase . $dirXml . $outputFileNameHead . ".csv
"; } else { echo "can not open csv file. filename=" . $dirXmlBase . $dirXml . $outputFileNameHead . ".csv"; } if ((count($arrInserString)) != count($pali_text_array) - 2) { $log = $log . "$from, $FileName,error,文件行数不匹配 csv = " . (count($arrInserString) - 1) . " pali_text_array=" . (count($pali_text_array) - 2) . " \r\n"; } $book = $from + 1; //计算段落信息,如上一段 PDO_Connect("" . _FILE_DB_PALITEXT_); $query = "select * from pali_text where book = '$book' "; $title_data = PDO_FetchAll($query); echo "Paragraph Count:" . count($title_data) . "
"; $paragraph_count = count($title_data); // 开始一个事务,关闭自动提交 $PDO->beginTransaction(); $query = "UPDATE pali_text SET level = ? , toc = ? , chapter_len = ? , next_chapter = ?, prev_chapter=? , parent= ? , chapter_strlen = ? WHERE book=? and paragraph=?"; $stmt = $PDO->prepare($query); $paragraph_info = array(); array_push($paragraph_info, array($from, -1, $paragraph_count, -1, -1, -1)); for ($iPar = 0; $iPar < count($title_data); $iPar++) { $title_data[$iPar]["level"] = $arrInserString[$iPar][3]; } for ($iPar = 0; $iPar < count($title_data); $iPar++) { $book = $from + 1; $paragraph = $title_data[$iPar]["paragraph"]; if ((int) $title_data[$iPar]["level"] == 8) { $title_data[$iPar]["level"] = 100; } $curr_level = (int) $title_data[$iPar]["level"]; # j计算这个chapter的段落数量 $length = -1; for ($iPar1 = $iPar + 1; $iPar1 < count($title_data); $iPar1++) { $thislevel = (int) $title_data[$iPar1]["level"]; if ($thislevel <= $curr_level) { $length = (int) $title_data[$iPar1]["paragraph"] - $paragraph; break; } } if ($length == -1) { $length = $paragraph_count - $paragraph + 1; } $prev = -1; if ($iPar > 0) { for ($iPar1 = $iPar - 1; $iPar1 >= 0; $iPar1--) { if ($title_data[$iPar1]["level"] == $curr_level) { $prev = $title_data[$iPar1]["paragraph"]; break; } } } $next = -1; if ($iPar < count($title_data) - 1) { for ($iPar1 = $iPar + 1; $iPar1 < count($title_data); $iPar1++) { if ($title_data[$iPar1]["level"] == $curr_level) { $next = $title_data[$iPar1]["paragraph"]; break; } } } $parent = -1; if ($iPar > 0) { for ($iPar1 = $iPar - 1; $iPar1 >= 0; $iPar1--) { if ($title_data[$iPar1]["level"] < $curr_level) { $parent = $title_data[$iPar1]["paragraph"]; break; } } } //计算章节包含总字符数 $iChapter_strlen = 0; for ($i = $iPar; $i < $iPar + $length; $i++) { $iChapter_strlen += $title_data[$i]["lenght"]; } $newData = array( $arrInserString[$iPar][3], $arrInserString[$iPar][5], $length, $next, $prev, $parent, $iChapter_strlen, $book, $paragraph, ); $stmt->execute($newData); if ($curr_level > 0 && $curr_level < 8) { array_push($paragraph_info, array($book, $paragraph, $length, $prev, $next, $parent)); } } // 提交更改 $PDO->commit(); if (!$stmt || ($stmt && $stmt->errorCode() != 0)) { $error = PDO_ErrorInfo(); echo "error - $error[2]
"; $log = $log . "$from, $FileName, error, $error[2] \r\n"; } else { $count = count($title_data); echo "updata $count paragraph info recorders.
"; echo count($paragraph_info) . " Heading
"; } //段落信息结束 $myLogFile = fopen(_DIR_LOG_ . "/db_update_palitext.log", "a"); fwrite($myLogFile, $log); fclose($myLogFile); ?> 齐活!功德无量!all done!"; } else { echo ""; echo "正在载入:" . ($from + 1) . "——" . $filelist[$from + 1][0]; } ?>