我正在处理一些非常简单的事情,但我发现很难解决这个问题。
我有一个字符串,其中包含由用户管理的web地址...所以它可以是:
是否有一种简单的方法可以识别并将其剪切到mydomain.com?这样它会保持统一吗?
function after ($this, $inthat) {
if (!is_bool(strpos($inthat, $this)))
return substr($inthat, strpos($inthat,$this)+strlen($this));
};
$web_data="";
if(!strpos($data["web"], "http://") {
$web_data=after ("http:\\", $data["concert_web"]);
}
if(!strpos($data["web"], "https://") {
$web_data=after ("https://", $data["concert_web"]);
}
if(!strpos($data["web"], "www") {
$web_data=after ("www", $data["concert_web"]);
}
我收集了那个剧本,但感觉不对,是否面向未来?我很想学习,并提前感谢你的任何评论。
答案 0 :(得分:2)
我个人会将{regex与preg_replace
结合使用。像这样:
// Strings for testing the case.
$domains = [
'foodomain.com',
'www.foodomain.com',
'http://foodomain.com',
'https://www.foodomain.com',
'https://www.foodomain.www.com',
];
$result_strings = preg_replace(
[
'#^https?://#', // First, remove protocol.
'#^www.#', // Remove www. from the beginning.
],
'', // Replace by an empty string.
$domains // You can pass your string here.
);
print_r($result_strings); // It will output result string for each of the domains from $domains array.
输出:
Array
(
[0] => foodomain.com
[1] => foodomain.com
[2] => foodomain.com
[3] => foodomain.com
[4] => foodomain.www.com
)
答案 1 :(得分:1)
您可以结合parse_url($URL, PHP_URL_HOST)
提及AbraCadaver和RegEx(通过preg_match()
)。
<?php
$URL = 'https://www.sub.domain.tld/file.php?okay=true';
preg_match('/([^\.]+\.[^\.]+)$/', parse_url($URL, PHP_URL_HOST), $m);
$DomainOnly = $m[1];
?>
$DomainOnly
将为domain.tld
。所有子域名都将被删除。