PHP提取和解析_基本问题

时间:2011-04-28 22:18:58

标签: php parsing ip extract extraction

我有一些没有扩展名的文件(约500个文件) 但我设法查看其内容,它有一些奇怪的标签和东西。

我需要从中提取所有IP地址..对于第2行中的ex,总是有这样的IP地址...... (71.129.195.163)

此外,还有一些html标签,如< a href =“http://www.xyz.com”>在很多行。 我需要从中获取此域名,例如xyz.com

有人可以帮助这个php新手吗?我知道将整个文件作为一个字符串和所有的...但由于PHP是强大的,我正在寻找一个甜蜜而简单的方法来实现这一目标。

非常感谢

1 个答案:

答案 0 :(得分:1)

正则表达式非常适用于此。

要查找文件中的所有IP:

$ipPattern = '/(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:[.](?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}/';

$ips = array();
preg_match_all($ipPattern, $fileContents, $ips);
$ips = $ips[0];

查找所有链接:

$linkPattern = '/href(\s+)?\=(\s+)?[\'"](.+?)[\'"]/';

$links = array();
preg_match($linkPattern, $fileContents, $links);

$link = $links[3];

假定文件内容位于$ fileContents中。 为每个文件运行此代码。 如果您需要收集所有IP和域,则可以将它们合并到大型数组中:

$allIps = array();
$allLinks = array();

// after each run of the above code do:
$allIps = array_merge($allIps, $ips);
$allLinks[] = $link;