如何使用 PHP 获取自定义参数值
How to get a custom parameter value using PHP
我的 PHP 页面有 URL:http://www.example.com/out?redirect=http%3A%2F%2Fwww.google.it/sample-test
我想要一个 PHP 函数来打印这个:Google.it
我只需要用大写字母打印域名即可。
目前我使用:
<?php
echo $_GET['redirect']; ?>
它得到 redirect
中包含的完整 URL 但我想要大写字母的域名。
您需要先解码 URL 以便您可以使用评论中提到的 parse_url
。这是一个解决它的选项,其概念是 www。将永远被使用...
- 解码url (
urldecode()
)
- 解析 url 以仅获取主机 (
parse_url($url, PHP_URL_HOST)
)
- 删除 www。 (
str_replace('www.','', $url)
)
- 大写字符串的首字母 (
ucfirst()
)
一行:
ucfirst(str_replace('www.', '', parse_url(urldecode($_GET['redirect']), PHP_URL_HOST)));
试试这个:
preg_match("/http:\/\/(?:.*?\.)?(.+?)\//", $_GET['redirect'], $matches);
echo ucfirst($matches[1]);
这是正则测试:
https://regex101.com/r/qQ2dE4/58
我的 PHP 页面有 URL:http://www.example.com/out?redirect=http%3A%2F%2Fwww.google.it/sample-test
我想要一个 PHP 函数来打印这个:Google.it
我只需要用大写字母打印域名即可。
目前我使用:
<?php
echo $_GET['redirect']; ?>
它得到 redirect
中包含的完整 URL 但我想要大写字母的域名。
您需要先解码 URL 以便您可以使用评论中提到的 parse_url
。这是一个解决它的选项,其概念是 www。将永远被使用...
- 解码url (
urldecode()
) - 解析 url 以仅获取主机 (
parse_url($url, PHP_URL_HOST)
) - 删除 www。 (
str_replace('www.','', $url)
) - 大写字符串的首字母 (
ucfirst()
)
一行:
ucfirst(str_replace('www.', '', parse_url(urldecode($_GET['redirect']), PHP_URL_HOST)));
试试这个:
preg_match("/http:\/\/(?:.*?\.)?(.+?)\//", $_GET['redirect'], $matches);
echo ucfirst($matches[1]);
这是正则测试: https://regex101.com/r/qQ2dE4/58