function process_csv_file($file_name, $output_folder, $seperator = ',') { $file_handle = fopen($file_name, "r") or die("Couldn't open {$file_name}\n"); $column_names = array(); $line_index = 0; while (!feof($file_handle)) { $current_parts = fgetcsv($file_handle, 0, $seperator); $line_index += 1; if ($line_index < 2) { $column_names = $current_parts; continue; } $row = array(); $column_index = 0; foreach ($column_names as $column_name) { if (isset($current_parts[$column_index])) { $row[$column_name] = $current_parts[$column_index]; } else { $row[$column_name] = null; } $column_index += 1; } handle_row($row, $output_folder); } fclose($file_handle); }
$mail_message = null; $row_tmp = array(); $db_configs_json = file_get_contents("db_config.json"); $db_configs = json_decode($db_configs_json, true); $servername = $db_configs['servername']; $dbname = $db_configs['dbname']; $username = $db_configs['username']; $password = $db_configs['password']; try { $conn = new PDO("mysql:host={$servername};dbname={$dbname}", $username, $password); $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $conn->exec("SET NAMES 'utf8';"); // 從資料庫抓出資料,檢查有沒有新推文 $sql = "SELECT * FROM main_table"; foreach ($conn->query($sql) as $row) { handle_row($row, $conn); } // 將剛剛更新的暫存資料存回資料庫 $sql = "UPDATE `main_table` SET `last_check`=:last_check, `remaining`=:remaining, `push_count`=:push_count WHERE `url`=:url"; $stmt = $conn->prepare($sql); foreach ($row_tmp as $key_url => $value_array) { $stmt->bindParam(':url', $key_url); $stmt->bindParam(':last_check', $value_array['last_check']); $stmt->bindParam(':remaining', $value_array['remaining']); $stmt->bindParam(':push_count', $value_array['push_count']); $stmt->execute(); echo $stmt->rowCount() . " records UPDATED successfully <br>"; } } catch (PDOException $e) { echo "Error: " . $e->getMessage(); }