替换字符串中的所有事件,但以“开始”开头的事件除外;http「;或;https";使用php

替换字符串中的所有事件,但以“开始”开头的事件除外;http「;或;https";使用php,php,regex,regex-negation,Php,Regex,Regex Negation,我正在尝试用php编写一个函数,我想用“.”替换所有出现的“www.” 我已尝试使用此代码,但我不希望字符串“.”变为“.” 有什么建议吗?将^锚添加到您的正则表达式: $text = preg_replace("/^www\./", "http://www.", $data); ^ -- this one 注意:注意模式参数中的正则分隔符(/…/) 此行起始锚点有助于确保要替换的www.字符串位于$data字符串的开头。它将防止这样一个字符串中间

我正在尝试用php编写一个函数,我想用“.”替换所有出现的“www.”

我已尝试使用此代码,但我不希望字符串“.”变为“.”


有什么建议吗?

^
锚添加到您的正则表达式:

$text = preg_replace("/^www\./", "http://www.", $data);
                       ^ -- this one
注意:注意模式参数中的正则分隔符(
/…/


此行起始锚点有助于确保要替换的
www.
字符串位于
$data
字符串的开头。它将防止这样一个字符串中间的任何不需要的替换:<代码>重定向器.COM//www. StaskPoox.com < /Cult>

< P>将<代码> ^ < /代码>锚点添加到正则表达式:

$text = preg_replace("/^www\./", "http://www.", $data);
                       ^ -- this one
注意:注意模式参数中的正则分隔符(
/…/


此行起始锚点有助于确保要替换的
www.
字符串位于
$data
字符串的开头。它将防止这样一个字符串中间的任何不需要的替换:<代码>重定向器.COM/?www. StasPox.com。
'~(?<!://)www\.~'
(?!http://)www\.

”~(?您可以通过反向查找来实现这一点:

'~(?<!://)www\.~'
(?!http://)www\.

”~(?试试这个。这不仅会检查HTTP,还会检查HTTPS、FTP等其他协议

function addPrefix($url) {
    if (!preg_match("~^(?:f|ht)tps?://~i", $url)) {
        $url = "http://" . $url;
    }
    return $url;
}

echo addPrefix("http://ww.google.com");

试试这个。这不仅会检查HTTP,还会检查HTTPS、FTP等其他协议

function addPrefix($url) {
    if (!preg_match("~^(?:f|ht)tps?://~i", $url)) {
        $url = "http://" . $url;
    }
    return $url;
}

echo addPrefix("http://ww.google.com");

您可以尝试负面查找:

'~(?<!://)www\.~'
(?!http://)www\.

您可以尝试负面查找:

'~(?<!://)www\.~'
(?!http://)www\.

试试这个简化的代码

 i.e  $url='www.xyz.com';
            function urlModified($patterns, $replace, $url)
            {
              $patterns = array ('http://www.');
              $replace = array ('/^www\./');
              preg_replace($patterns, $replace, $url);
              return $url;
            }

试试这个简化的代码

 i.e  $url='www.xyz.com';
            function urlModified($patterns, $replace, $url)
            {
              $patterns = array ('http://www.');
              $replace = array ('/^www\./');
              preg_replace($patterns, $replace, $url);
              return $url;
            }