詰めガブリエル:
私は電子メールのリストを持っており、各電子メールのドメイン名と各ドメインの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を、それはリストの最後のメールの値のみをエコーが、その前に電子メールのリストをエコーしません。私はエコー場合は、ドメインを、リスト上のすべてのメールのドメインをエコーします。
thingEvery:
あなたのecho
文は、あなたの外側にあるforeach
ループ。確定echo
内側ループ内では、時間の各MXのいずれかをエコーします。
あなたではなく1つのコマンドで一度に全てをエコーしたい場合は、ループ内の変数にそれらを収集して、リスト全体をエコー。
編集:
それは現在フォーマットされていますようにテキストファイルを処理するには、まず、配列の各要素から改行を削除する必要があります。
<?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";
}
}
?>