我像这样在数据库中存储 url 字符串,
'http://www.domain.com'
我怎样才能显示上面的字符串
'www.domain.com'
我需要第一手的正则表达式
parse_url()
您可以将 url 拆分为各个部分并获取您想要的部分。在您的情况下(寻找host
),它将是:
$url = 'http://www.domain.com';
$parts = parse_url($url);
$result = $parts['host'];
与其他已发布的解决方案相比,这有一个很大的优势:它可以使用 https-url、带有 get-parameters 的 url 和/或 url,包括 htaccess-authentication 参数,而无需更改代码。
您可以使用以下内容:
<?php
str_replace('http://', '', $url);
编辑:
由于您坚持使用正则表达式解决方案,因此这里有一个将 http 和 https 合二为一的解决方案
echo preg_replace( '/^(htt|ht|tt)p\:?\/\//i', '', $url);
echo substr('http://www.domain.com',7);
if (substr('http://www.domain.com',7) == 'http://' or substr('https://www.domain.com',8) == 'https://')
在不解析 URL 的情况下修改字符串的通用解决方案(即你应该学会自己能够做这样的事情):
if (stripos($url, 'http://', 0) == 0)
$url = substr($url, 7);
https://
您还可以轻松地为前缀或其他任何内容添加另一个检查:
if (stripos($url, 'https://', 0) == 0)
$url = substr($url, 8);
使用正则表达式,尽管完全没有必要,因为没有什么需要,你可以像这样:
$url = preg_replace('/^http:\\/\\//', '', $url);
或者直接支持 https:
$url = preg_replace('/^https?:\\/\\//', '', $url);
只需您可以使用 $url = 'http://www.domain.com';
str_replace('http://', '', $url);
它会准确返回www.domain.com