Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何删除域名并在域名字符串PHP&;中仅保留tld;正则表达式_Php_Regex_String - Fatal编程技术网

如何删除域名并在域名字符串PHP&;中仅保留tld;正则表达式

如何删除域名并在域名字符串PHP&;中仅保留tld;正则表达式,php,regex,string,Php,Regex,String,[PHP]我想去掉域关键字,只留下TLD。我如何做到这一点?我在正则表达式模式的帮助下尝试了一些字符串函数,但它们只支持1个域。但是你可以看到我有多个条目 原始字符串: { "example.biz":"Available", "example.co":"Available", "example.com":"Unavailable", "example.mobi":"Available", "example.net":"Unavailable", "examp

[PHP]我想去掉域关键字,只留下TLD。我如何做到这一点?我在正则表达式模式的帮助下尝试了一些字符串函数,但它们只支持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"
}

您不需要正则表达式来实现这一点。您的字符串看起来像有效的JSON。您可以使用(第二个参数设置为
TRUE
以获得关联数组)将其解析为数组,然后使用和删除
之前的所有内容:


当然
.co.uk
需要考虑,其他锁定到第二级的TLD也需要考虑。当
.uk
在第二层打开时,情况只会变得更糟……如果“示例”是一个已知常数,那么最好去掉它?@NiettheDarkAbsol:我知道它不能处理所有的极端情况。这只是朝着正确的方向轻推。OP应根据其要求使用更新。总的来说,你说的是对的:)@使者:我不认为是这样。也许OP用
example.tld
?嗯。。。最好假设两个字母域无效(因为它们几乎被普遍限制为非常特定的实体),并在此基础上使用正则表达式。我想角落里的案子少了。
$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"
}