[PHP]我想剥离域名关键字,只留下TLD。我如何实现它?我在Regex Patterns的帮助下尝试了一些字符串函数,但它们只支持1个域。但你可以看到我有多个条目。
原始字符串:
{
"example.biz":"Available",
"example.co":"Available",
"example.com":"Unavailable",
"example.mobi":"Available",
"example.net":"Unavailable",
"example.org":"Unavailable"
}
预期输出。
{
"biz":"Available",
"co":"Available",
"com":"Unavailable",
"mobi":"Available",
"net":"Unavailable",
"org":"Unavailable"
}
答案 0 :(得分:1)
您不需要正则表达式来实现此目的。您的字符串看起来像有效的JSON。您可以使用json_decode()
将其解析为数组(第二个参数设置为TRUE
以获取关联数组),然后使用strstr()
和{{.
删除所有内容3}}:
$string = <<<'EOD'
{
"example.biz":"Available",
"example.co":"Available",
"example.com":"Unavailable",
"example.mobi":"Available",
"example.net":"Unavailable",
"example.org":"Unavailable"
}
EOD;
$jsonArr = json_decode($string, TRUE);
$result = array();
foreach ($jsonArr as $domain => $status) {
$newkey = ltrim(strstr($domain, '.'), '.');
$result[$newkey] = $status;
}
echo json_encode($result, JSON_PRETTY_PRINT);
输出:
{
"biz": "Available",
"co": "Available",
"com": "Unavailable",
"mobi": "Available",
"net": "Unavailable",
"org": "Unavailable"
}