GetMessage() . PHP_EOL; } function parse_vanilla_csv($csv_filename) { global $vanilla_data; $fp = fopen($csv_filename, 'r'); if ( !$fp ) { throw new Exception('could not open csv file - ' . $csv_filename); } $csv_line_count = 0; $fuz_count = 0; // ヘッダ行を読み捨てる fgets($fp); $csv_line_count++; while ( !feof($fp) ) { $ary = fgetcsv($fp); $csv_line_count++; // CSVですらない不正な行(ファイルの末尾など) if ( !is_array($ary) ) { continue; } // カラムの数が合わない不正な行 if ( count($ary) != 8 ) { continue; } // セリフが存在しない行 $dialogue = trim($ary[6]); if ( strlen($dialogue) == 0 ) { continue; } $fuz_count++; $fuz_file = $ary[4]; $vanilla_data[$fuz_file] = $ary[6]; } fclose($fp); echo $csv_filename . PHP_EOL; echo ' csv_line: ' . $csv_line_count . PHP_EOL; echo ' fuz: ' . $fuz_count . PHP_EOL; } function parse_mod_csv($csv_filename) { global $vanilla_data; $fp = fopen($csv_filename, 'r'); if ( !$fp ) { throw new Exception('could not open csv file - ' . $csv_filename); } $csv_line_count = 0; $fuz_count = 0; $match_count = 0; // ヘッダ行を読み捨てる fgets($fp); $csv_line_count++; while ( !feof($fp) ) { $ary = fgetcsv($fp); $csv_line_count++; // CSVですらない不正な行(ファイルの末尾など) if ( !is_array($ary) ) { continue; } // カラムの数が合わない不正な行 if ( count($ary) != 8 ) { continue; } // セリフが存在しない行 $dialogue = trim($ary[6]); if ( strlen($dialogue) == 0 ) { continue; } $fuz_count++; $fuz_file = $ary[4]; $dialogue = $ary[6]; $key = array_search($dialogue, $vanilla_data); if ( $key ) { $match_count++; copy_fuz_file($key, $fuz_file); } } fclose($fp); echo $csv_filename . PHP_EOL; echo ' csv_line: ' . $csv_line_count . PHP_EOL; echo ' fuz: ' . $fuz_count . PHP_EOL; echo ' match: ' . $match_count . PHP_EOL; } function copy_fuz_file($copy_from, $copy_to) { $copy_from = VANILLA_DIR . '/' . $copy_from; $copy_to = MOD_DIR . '/' . $copy_to; if ( !file_exists($copy_from) ) { throw new Exception($copy_from . ' not exists.'); } if ( file_exists($copy_to) ) { throw new Exception($copy_to . ' already exists.'); } copy($copy_from, $copy_to); }