qasimkhans
-
Posts
5 -
Joined
-
Last visited
Posts posted by qasimkhans
-
-
If you are reading the log file and copying the content to the database, then why not clear out the log file when you do that?
A good idea, Thanks, how to clear the log file?
-
following is my script, i read the file and save in DB.<?phprequire_once('dbconnect.php');$file = file("/var/log/asterisk/recvsms/recvsms_log");foreach($file as $key => $value){$filter_value = trim($value);if($filter_value!="" && $filter_value!="----SMS_START----" && $filter_value!="----SMS_END----"){$new_array[] = $value;$my_array = array_chunk($new_array, 7);}}$count = count($my_array);for($I=0;$I<$count;$I++){foreach($my_array[$I] as $key => $value){$ss = explode(":", $value);$mm_array[$I][$ss[0]] = str_replace($ss[0].":", "", $value);}mysql_query("insert into receive_sms (receive_time,span,sms_from_number,timestamp,type,sms_center_number,sms_content)values('".$mm_array[$I]['recv_time']."','".$mm_array[$I]['Span']."','".$mm_array[$I]['FromNumber']."','".$mm_array[$I]['Timestamp']."','".$mm_array[$I]['Type']."','".$mm_array[$I]['SMS-SMSC-Number']."','".$mm_array[$I]['Content']."')");}?>
that log file generated by system. so i have to read data from that log file.
-
A couple things come to mind:
1. Write the data to a database instead of (or in addition to) the log file. Getting dynamic entries would be much easier.
2. Create a new log file each week/month and archive older ones on a regular basis. Having log files n GB will become a problem even if you aren't wanting to dynamically read specific entries. Then you can just pull content from the current log file and possibly one back.
following is my script, i read the file and save in DB.<?phprequire_once('dbconnect.php');$file = file("/var/log/asterisk/recvsms/recvsms_log");foreach($file as $key => $value){$filter_value = trim($value);if($filter_value!="" && $filter_value!="----SMS_START----" && $filter_value!="----SMS_END----"){$new_array[] = $value;$my_array = array_chunk($new_array, 7);}}$count = count($my_array);for($I=0;$I<$count;$I++){foreach($my_array[$I] as $key => $value){$ss = explode(":", $value);$mm_array[$I][$ss[0]] = str_replace($ss[0].":", "", $value);}mysql_query("insert into receive_sms (receive_time,span,sms_from_number,timestamp,type,sms_center_number,sms_content)values('".$mm_array[$I]['recv_time']."','".$mm_array[$I]['Span']."','".$mm_array[$I]['FromNumber']."','".$mm_array[$I]['Timestamp']."','".$mm_array[$I]['Type']."','".$mm_array[$I]['SMS-SMSC-Number']."','".$mm_array[$I]['Content']."')");}?> -
i have a log file which gets new data time by time. is there any way i can read only new added entries (block) in the file? instead of start reading file from start to the end of file. this file size will be in GBs soon. Thanks. currently i am using file() to read the file. following is the example of new added block in file.
----SMS_START----
recv_time:2014-10-09 18:32:39
Span: 1
From-Number: +1347XXXXXXX
Timestamp: 14/10/09 18:32:16 96
Type: PDU
SMS-SMSC-Number: +12404492163
Content: Thanks,----SMS_END----
PHP read only new added entry in file
in Application Design
Posted
Thanks, i will try it and let you know.