使用php从文本文件中提取子域/域

使用php从文本文件中提取子域/域,php,regex,dns,Php,Regex,Dns,我有下面的代码,它从输入中提取域名并将它们存储在一个数组中 foreach ($output as $domList) { $extensionList = explode(",", "org,com,net"); $pattern = '/(\s{0,}|\.)([-a-z0-9]+\.(' . implode("|", $extensionList) . '))\s{1,}/i'; $matches = array(); preg_match_all($pattern, $d

我有下面的代码,它从输入中提取域名并将它们存储在一个数组中

foreach ($output as $domList)
{
  $extensionList = explode(",", "org,com,net");
  $pattern = '/(\s{0,}|\.)([-a-z0-9]+\.(' . implode("|", $extensionList) . '))\s{1,}/i';
  $matches = array();
  preg_match_all($pattern, $domList, $matches);
}
匹配项[0]包含提取的所有域


我如何修改它来提取子域呢?

示例输入和预期输出肯定会有帮助(我用输入获得了创作许可证)。新的正则表达式的想法是继续吃掉任何不是.com、.org或.net的东西。匹配项[0]现在应生成所有域和子域

$output = array("a" => " test.com  test.sub.com", "b"=> "a.com a.b.com b.c.a.com" );
foreach ($output as $domList)
{
  $extensionList = explode(",", "org,com,net");
  $pattern = '/\s*([-a-z0-9]+\.)+' . implode("|", $extensionList) . '\s*/i';
  $matches = array();
  preg_match_all($pattern, $domList, $matches);
   //   foreach ($matches[0] as $val) {
   //     echo "matched: " . $val . "\n";
}

根据您的需要调整此页面应该不难。

您可以提供
$output
$output=“联系我们的主页支持。此页面是实时的!。域是test.com、test.sub.com。访问者…”;