1.需求是这样的:
有若干-sitemap-链接地址,如:http://xxx.xxx/xx.xml
其中的内容,如:http://xxx/xxx/xx (多条)
我需要读取-xml-中的内容,然后访问其中的链接,获取其 title,然后和链接一起写入数据库。
2.我的代码是这样的:
set_time_limit(0);
function get_title($url) {
$output = file_get_contents($url);
$page = [];
$page['title'] = '';
preg_match('/<TITLE>([\w\W]*?)<\/TITLE>/si', $output, $m);
$page['title'] = $m[1];
return $page['title'];
}
$xml_str = file_get_contents($xml_url);
// $data = simplexml_load_file($xml_str);
$xml_obj = simplexml_load_string($xml_str);
$data = [];
$current = time();
foreach ($xml_obj as $k => $v) {
$data[$k]['title'] = get_title($v->loc);
$data[$k]['url'] = $v->loc;
$data[$k]['created_at'] = $current;
}
$ret = Sitemap::insert($data);
可是这样很容易崩,提交数据的时候本地服务直接运转不过来。
?有没有更好的解决办法
php cli模式运行,不要在浏览器