ホームページ  >  記事  >  バックエンド開発  >  PHP の大きなログ ファイルの読み取りと書き込み

PHP の大きなログ ファイルの読み取りと書き込み

WBOY
WBOYオリジナル
2016-07-25 09:06:471251ブラウズ
ログ ファイルは大きく、2G を超えます。ファイル操作を使用する方法はなく、一行ずつ読み取るだけです。                                                                                                     
                                                                                                                                                                                                                                                                                                       



set_time_limit(0);
@ini_set('memory_limit', '64M');
    $conn = mysql_pconnect('localhost', 'hcq', 'hcq') または die("データベースに接続しません.");
  1. mysql_select_db('log', $conn);
  2. mysql_query('set names utf8', $conn);
  3. $file = '/home/hcq/data/www.nimmin.com_20120601_access.log';
  4. $handle = fopen($file, "r") または die("ファイル {$file} を開けません");
  5. while($log = stream_get_line($handle, 8192, "n")) {
  6. $i =explode(' ', $log);
  7. $path = isset($i[6]) ? str_replace('http://www.nimmin.com', '', $i[6]) : false ;
  8. if($path) {
  9. preg_match('/(jpg|png|gif)/iu', $path, $m);
  10. if(isset($i[8]) && $i[8] == = '200' && count($m) > 0) {
  11. $len = isset($i[9]) : 0;
  12. $refer = isset($i[12] ) ? str_replace('"', '', $i[12]) : '';
  13. mysql_query('INSERT INTO trace(path, len, Refer) VALUES (''.$path.'', ​​'.$len .', ''.$refer.'')', $conn);
  14. }
  15. }
  16. }
  17. fclose ($handle);
  18. exit;
  19. コードをコピー
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。