ログ ファイルは大きく、2G を超えます。ファイル操作を使用する方法はなく、一行ずつ読み取るだけです。
set_time_limit(0);@ini_set('memory_limit', '64M'); $conn = mysql_pconnect('localhost', 'hcq', 'hcq') または die("データベースに接続しません.");- mysql_select_db('log', $conn);
- mysql_query('set names utf8', $conn);
-
- $file = '/home/hcq/data/www.nimmin.com_20120601_access.log';
- $handle = fopen($file, "r") または die("ファイル {$file} を開けません");
-
- while($log = stream_get_line($handle, 8192, "n")) {
- $i =explode(' ', $log);
- $path = isset($i[6]) ? str_replace('http://www.nimmin.com', '', $i[6]) : false ;
- if($path) {
- preg_match('/(jpg|png|gif)/iu', $path, $m);
- if(isset($i[8]) && $i[8] == = '200' && count($m) > 0) {
- $len = isset($i[9]) : 0;
- $refer = isset($i[12] ) ? str_replace('"', '', $i[12]) : '';
- mysql_query('INSERT INTO trace(path, len, Refer) VALUES (''.$path.'', '.$len .', ''.$refer.'')', $conn);
- }
- }
- }
-
- fclose ($handle);
-
-
-
-
- exit;
-
-
- コードをコピー
-
|