PHP字符串替换不能正常工作

时间:2013-08-26 04:52:49

标签: php string

这是我的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数组,但它不起作用。

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

5 个答案:

答案 0 :(得分:2)

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

$host = parse_url($url, PHP_URL_HOST);

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

preg_replace('/^www\./', '', $host);

答案 1 :(得分:1)

您可以使用rtrim()

$string = 'https://www.mydomain.lk/';
echo rtrim($string, '/'); //gives --> https://www.mydomain.lk

答案 2 :(得分:1)

您只想替换字符串末尾的/,因此您需要$,例如/$,但preg_quote最终会转义$ 1}}。

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

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

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

答案 3 :(得分:0)

试试这个

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

像这种格式输出

https://www.mydomain.lk

答案 4 :(得分:0)

请试试这个:

$string = 'https://www.mydomain.lk/';
$uri = parse_url($string);
$domain = str_replace("www.", "", strtolower($uri['host']));
echo $domain;