我有一个txt文件(links.txt)其中有数千个链接
我想使用以下代码对所有链接进行排序
<?php
function get_domain($url)
{
$pieces = parse_url($url);
$domain = isset($pieces['host']) ? $pieces['host'] : $pieces['path'];
if (preg_match('/(?P<domain>[a-z0-9][a-z0-9\-]{1,63}\.[a-z\.]{2,6})$/i', $domain, $regs)) {
return $regs['domain'];
}
return false;
}
print get_domain("http://mail.somedomain.co.uk"); // outputs 'somedomain.co.uk'
?>
如何调用文件1并安排它们并再次保存?
在我的文件(domains.txt)中,大约有10,000个域 我想用上面的代码过滤域名
例如:
在:
http://www.example.com/about
www.example.net/index.php
http://subdomain.example.org/
http://www.example.co/page-1
http://www.example.co.uk
后:
example.com
example.net
example.org
example.co
example.co.uk
答案 0 :(得分:1)
理论上它很简单:
$file = file('domains.txt');
for ($x=0;$x<count($file);$x++) {
$file[$x] = get_domain($file[$x]);
}
sort($file);
file_put_contents('domains.txt', $file);
但是,根据域文件的大小,这可能会很慢和/或占用大量资源,甚至可能会崩溃。你没有提到这是一次性还是经常发生的事情,但如果这是一个问题,那么其他解决方案将包括:
注意:如果你选择上面的PHP,你可能需要考虑增加该脚本中的PHP's time limit。