PHP提取和解析_基本问题

发布于 2024-11-04 03:52:30 字数 376 浏览 5 评论 0原文

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

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

另外,还有一些 html 标签,例如 (71.129.195.163) a href = "http://www.xyz.com" >在很多行中。 我需要从中获取这个域名,例如xyz.com

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

多谢

I have some files (about 500 files) with NO extension.
But I managed to view its contents , it has some weird tags and stuff.

I need to extract all IP addreesses from it.. For ex in line 2 there is always an IP address like this ... (71.129.195.163)

Also, there are some html tags like < a href = "http://www.xyz.com" > in a lot of lines.
I need to get this domain name from it , like xyz.com.

could someone assist this php newbie? i know to get the entire file as a string and all tht.. but since php is powerful, I am looking for a sweet and simple way to achieve this .

Thanks a lot

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

变身佩奇 2024-11-11 03:52:30

正则表达式对此非常有用。

查找文件中的所有 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;

Regular expressions are great for this.

To find all IPs in a file:

$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];

To find all links:

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

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

$link = $links[3];

The file content is assumed to be in $fileContents.
Run this code for every file.
If you need to collect all IPs and domains than you can merge them into big arrays:

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

// after each run of the above code do:
$allIps = array_merge($allIps, $ips);
$allLinks[] = $link;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文