0

这是我的PHP代码,

$string = 'https://www.mydomain.lk/';
$wordlist = array("http://", "www.", "https://", "/");

foreach ($wordlist as &$word) {
    $word = '/\b' . preg_quote($word, '/') . '\b/';
}

echo $string2 = preg_replace($wordlist, '', $string);

我想从 $string 中删除最后一个“/”。所以我将“/”添加到 $wordlist 数组,但它不起作用。

有人可以帮我解决这个问题。谢谢。

4

5 回答 5

2

似乎在大多数情况下您希望提取主机名:

$host = parse_url($url, PHP_URL_HOST);

www.然后可以单独删除前导。

preg_replace('/^www\./', '', $host);
于 2013-08-26T04:56:58.717 回答
1

你可以使用rtrim()

$string = 'https://www.mydomain.lk/';
echo rtrim($string, '/'); //gives --> https://www.mydomain.lk
于 2013-08-26T04:55:23.513 回答
1

您只想替换/字符串末尾的内容,因此您需要一个$, like /$,但preg_quote最终会转义$.

删除尾随的最佳方法/是使用 rtrim,就像 Sudhir 建议的那样。或者,您可以删除preg_quote循环并在您的$wordlist:中使用正则表达式

$string = 'https://www.mydomain.lk/';
$wordlist = array("#https?://#", "#www\.#", "#/$#");

echo $string2 = preg_replace($wordlist, '', $string);
于 2013-08-26T04:57:41.360 回答
0

尝试这个

$url= 'https://www.mydomain.lk/';
echo $newurl = rtrim($url,"/");

像这种格式输出

https://www.mydomain.lk
于 2013-08-26T04:59:43.813 回答
0

请试试这个:

$string = 'https://www.mydomain.lk/';
$uri = parse_url($string);
$domain = str_replace("www.", "", strtolower($uri['host']));
echo $domain;
于 2013-08-26T05:07:13.590 回答