Jul
26
短信大师导出短信为txt后的一个php整理程序
1. 选中收件箱和发件箱
2. 菜单->操作->导出文本
3. 把导出的短信都放在一个目录下面
4. 在目录下放一个convertencoding.php,内容为:
5. 另一个php脚本,用于提取和指定的人的聊天记录
转载请注明出自 ,如是转载文则注明原出处,谢谢:)
RSS订阅地址: https://www.felix021.com/blog/feed.php 。
2. 菜单->操作->导出文本
3. 把导出的短信都放在一个目录下面
4. 在目录下放一个convertencoding.php,内容为:
<?php
$dir = scandir(".");
foreach($dir as $file){
if(substr($file, -3) != "txt") continue;
echo $file, "\n";
$str = file_get_contents($file);
$str = iconv("GB18030", "UTF-8", $str);
file_put_contents($file, $str);
}
?>
然后$ php convertencoding.php 运行之。$dir = scandir(".");
foreach($dir as $file){
if(substr($file, -3) != "txt") continue;
echo $file, "\n";
$str = file_get_contents($file);
$str = iconv("GB18030", "UTF-8", $str);
file_put_contents($file, $str);
}
?>
5. 另一个php脚本,用于提取和指定的人的聊天记录
<?php
$dir = scandir(".");
foreach($dir as $file){
if (!preg_match("/^\\d*\.txt/", $file)){
continue;
}
echo $file, "\n";
$sms = convert($file);
$str = smstofile($sms, "lalala_$file");
}
function smstofile($sms, $filename){
$fp = fopen($filename, "w");
if($fp == NULL) {
echo "error opening\n";
return false;
}
foreach($sms as $msg){
$str = implode("", $msg['content']);
fprintf($fp, "%s\n----------------\n", $str);
}
fclose($fp);
}
function cmp($i, $j){
return $i['time'] < $j['time'];
}
function mysort(&$arr, $s, $e, $func){
$i = $s; $j = $e; $tmp = $arr[$s];
if($s < $e){
while($i != $j){
while($i < $j && $func($tmp, $arr[$j])) $j--;
if($i < $j){
$arr[$i] = $arr[$j];
$i++;
}
while($i < $j && $func($arr[$i], $tmp)) $i++;
if($i < $j){
$arr[$j] = $arr[$i];
$j--;
}
}
$arr[$i] = $tmp;
mysort($arr, $s, $i-1, $func);
mysort($arr, $i+1, $e, $func);
}
}
function smsfilter($var){
return (preg_match("/那个人的电话号码/", $var['content'][1]));
}
function convert($filename){
if(!is_file($filename)){
echo "$filename is not a file.\n";
return false;
}
$i = -1;
$sms = array();
$lines = file($filename);
foreach($lines as $line){
//$line = trim($line);
if(preg_match("/^时 间:(\\d*)-(\\d*)-(\\d*) (\\d*):(\\d*):(\\d*)\\s+$/"
, $line, $m)){
$i++;
$sms[$i]["time"] = mktime($m[4], $m[5], $m[6],
$m[2], $m[3], $m[1]);
}
$sms[$i]["content"][] = $line;
}
$sms = array_filter($sms, smsfilter);
$sms1 = $sms;
unset($sms);
$sms = array();
foreach($sms1 as $var) $sms[] = $var;
$cnt = count($sms);
$j = 1;
for( ; $j < $cnt; $j++){
if($sms[$j]['time'] > $sms[$j-1]['time']) break;
}
for( ; $j < $cnt; $j++){
$sms[$j]["content"][1] = "发送者:\"Me\" <+861592640xxxx>\n";
}
mysort($sms, 0, count($sms)-1, cmp);
return $sms;
}
?>
运行之。$dir = scandir(".");
foreach($dir as $file){
if (!preg_match("/^\\d*\.txt/", $file)){
continue;
}
echo $file, "\n";
$sms = convert($file);
$str = smstofile($sms, "lalala_$file");
}
function smstofile($sms, $filename){
$fp = fopen($filename, "w");
if($fp == NULL) {
echo "error opening\n";
return false;
}
foreach($sms as $msg){
$str = implode("", $msg['content']);
fprintf($fp, "%s\n----------------\n", $str);
}
fclose($fp);
}
function cmp($i, $j){
return $i['time'] < $j['time'];
}
function mysort(&$arr, $s, $e, $func){
$i = $s; $j = $e; $tmp = $arr[$s];
if($s < $e){
while($i != $j){
while($i < $j && $func($tmp, $arr[$j])) $j--;
if($i < $j){
$arr[$i] = $arr[$j];
$i++;
}
while($i < $j && $func($arr[$i], $tmp)) $i++;
if($i < $j){
$arr[$j] = $arr[$i];
$j--;
}
}
$arr[$i] = $tmp;
mysort($arr, $s, $i-1, $func);
mysort($arr, $i+1, $e, $func);
}
}
function smsfilter($var){
return (preg_match("/那个人的电话号码/", $var['content'][1]));
}
function convert($filename){
if(!is_file($filename)){
echo "$filename is not a file.\n";
return false;
}
$i = -1;
$sms = array();
$lines = file($filename);
foreach($lines as $line){
//$line = trim($line);
if(preg_match("/^时 间:(\\d*)-(\\d*)-(\\d*) (\\d*):(\\d*):(\\d*)\\s+$/"
, $line, $m)){
$i++;
$sms[$i]["time"] = mktime($m[4], $m[5], $m[6],
$m[2], $m[3], $m[1]);
}
$sms[$i]["content"][] = $line;
}
$sms = array_filter($sms, smsfilter);
$sms1 = $sms;
unset($sms);
$sms = array();
foreach($sms1 as $var) $sms[] = $var;
$cnt = count($sms);
$j = 1;
for( ; $j < $cnt; $j++){
if($sms[$j]['time'] > $sms[$j-1]['time']) break;
}
for( ; $j < $cnt; $j++){
$sms[$j]["content"][1] = "发送者:\"Me\" <+861592640xxxx>\n";
}
mysort($sms, 0, count($sms)-1, cmp);
return $sms;
}
?>
欢迎扫码关注:
转载请注明出自 ,如是转载文则注明原出处,谢谢:)
RSS订阅地址: https://www.felix021.com/blog/feed.php 。