php - 如何回显多个数组 - PHP
问题描述
我有一个电子邮件列表,想要提取每个电子邮件的域名和每个域的 DNS_MX。这是我的代码:
<?php
$emaillist = file('list.txt');
foreach ($emaillist as $x) {
$domain = substr(strrchr($x, "@"), 1);
$mx = dns_get_record($domain, DNS_MX);
foreach ($mx as $key1) {
$mxtarget = $key1['target'];
}
echo "$mxtarget <br>";
}
?>
问题:当我回显 $mxtarget时,它仅回显列表中最后一封电子邮件的值,但不回显之前的电子邮件列表。但是,如果我回显域,它会回显列表中所有电子邮件的域。
解决方案
你的echo
陈述在你的foreach
循环之外。将echo
内部循环放置在内部将一次回显每个 MX。
如果您想用一个命令一次全部回显它们,请将它们收集在循环内的一个变量中,然后回显整个列表。
编辑:
为了处理当前格式的文本文件,您需要首先从数组中的每个元素中删除换行符。
<?php
$emaillist = file('https://cardguard.xyz/tools/list.txt');
foreach ($emaillist as &$email) {
$email = str_replace(array("\r", "\n"), '', $email);
}
foreach ($emaillist as $x) {
$domain = substr(strrchr($x, "@"), 1);
$mx = dns_get_record($domain, DNS_MX);
//$mxtarget = "";
foreach ($mx as $key1) {
$mxtarget = $key1['target'];
echo "$mxtarget. \n";
}
}
?>
推荐阅读
- jersey - 将大型 HSSFWorkbook 写入 ServletOutputStream
- r - 将 R 中的表与 R 中的 2 个公共列合并
- javascript - Angular 属性数据返回为空
- javascript - 将网络摄像头设备连接到 PC
- flutter - Flutter:“GameNameEnum”类型的值不能分配给“GameNameEnum”类型的变量
- node.js - 获取匹配文档的总数并在满足特定条件的子集中进行计数
- text-classification - 如何在 BertForSequenceClassification 之上添加额外的密集层?
- google-sheets - 使用带有符号 ' 的单词查询和导入范围(例如 = James 'Lee)
- docker - 为什么气流尝试在 ubuntu 服务器上使用 sudo 运行任务然后失败?
- python - python中的命令行参数运行两个脚本之一