如何使用PHP获取自定义参数值
我有一个带有URL的PHP页面:如何使用PHP获取自定义参数值,php,get,Php,Get,我有一个带有URL的PHP页面:http://www.example.com/out?redirect=http%3A%2F%2Fwww.google.it/sample-测试我想要一个PHP函数来打印这个:Google.it 我只需要用大写字母打印域名,其他什么都不需要 目前我使用: <?php echo $_GET['redirect']; ?> 它获取重定向中包含的完整URL,但我希望域名带有大写字母。您需要首先解码URL,以便使用注释中提到的解析URL。这里有一个选择,
http://www.example.com/out?redirect=http%3A%2F%2Fwww.google.it/sample-测试
我想要一个PHP函数来打印这个:Google.it
我只需要用大写字母打印域名,其他什么都不需要
目前我使用:
<?php
echo $_GET['redirect']; ?>
它获取
重定向中包含的完整URL
,但我希望域名带有大写字母。您需要首先解码URL,以便使用注释中提到的解析URL
。这里有一个选择,它的概念是www.将永远被使用
urldecode()
)parse\uURL($url,PHP\uURL\uhost)
)str\u replace('www.,'',$url)
)ucfirst()
)ucfirst(str\u replace('www.,'',parse\u url(urldecode($\u GET['redirect']),PHP\u url\u HOST))代码>尝试以下操作:
preg_match("/http:\/\/(?:.*?\.)?(.+?)\//", $_GET['redirect'], $matches);
echo ucfirst($matches[1]);
以下是reg ex测试:
parse\u url
函数应该有帮助您可以使用regex,这取决于it
是否是您唯一关心的TLD?不,它只是一个示例。我使用.it.com.net等。有时URL没有www。我该怎么办?如果没有www
,str\u replace
将只返回原始名称。您确定需要调用urldecode
?PHP将在设置$\u GET['redirect']
@Barmar good point时自动执行此操作。测试时我只使用了一个名为$url
的字符串变量,因此我必须包含decode()
。它可以工作,但只得到第一个字母。示例:GI调整了正则表达式,它现在应该可以工作了。请尝试打印\r($matches)。正如您在regex101链接中看到的那样,这对我很有效。添加了一个图像,显示这非常有效。好的,它可以工作,但我看到它也有子域。是否可以仅获取域?e、 g.sample.example.com->打印sample.example.com时的example.com