背景:家里的电脑保存了一堆网站书签,公司的电脑又保存了另外一堆书签,通过谷歌同步书签,同步完成后,发现书签重复的太多了,因为我一开始用的是U盘拷贝的方法,但是后来发现可以同步过来,于是又同步了一次书签,造成了这个场景的出现。
ok,有了场景就可以解决问题了。
当然,有人会说用书签管理插件管理,但是那些插件都不能去掉我的多个书签目录的问题,所以今天我只能为了自己的场景解决问题。
//输出文件名
$out_file_name = './bookmarks.html';
//输入文件名
$input_file_name = './ord_bookmarks.html';
//读取输入文件名
$file = file_get_contents($input_file_name);
//正则匹配指定格式的文件
preg_match_all('/<DT><A(.*?)<\/a>/i', $file, $result);
//数据初始化
$data = [];
//指定输出头部
$head = '<!DOCTYPE NETSCAPE-Bookmark-file-1>
<!-- This is an automatically generated file.
It will be read and overwritten.
DO NOT EDIT! -->
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">
<TITLE>Bookmarks</TITLE>
<H1>Bookmarks</H1>
<DL><p>
<DT><H3 ADD_DATE="1500942490" LAST_MODIFIED="1529028006" PERSONAL_TOOLBAR_FOLDER="true">书签栏</H3>
<DL><p>';
foreach ($result[0] as $key => $value) {
//去重
if (!in_array($value, $data)) {
$data[] = $value;
}
}
//转成字符串
$list = implode("\r\n", $data);
//转成谷歌需要的文件
$new_file = $head . $list . '</DL><p>';
//写入文件,结束
file_put_contents($out_file_name, $new_file);