找到字符串匹配

时间:2010-07-30 16:05:26

标签: php regex

我需要检查一个变量,看看该字符串是以http://还是https://

开头的

如果存在则执行其他操作。我该怎么做呢?

5 个答案:

答案 0 :(得分:6)

你可能正在寻找:

switch(parse_url($string, PHP_URL_SCHEME)){
    case 'https':
        //do something
    case 'http':
        //something else
    default:
       //anything else you'd like to support?
}

答案 1 :(得分:4)

preg_match('!^https?://!', $string)

docs

答案 2 :(得分:3)

问题不明确。如果您只是想知道字符串是否以 http或https 开头,您可以使用

$startsWithIt = (strpos($haystack, 'http') === 0);

如果您希望检查包含://,则必须执行以下操作:

if((strpos($haystack, 'http://') === 0) || 
   (strpos($haystack, 'https://') === 0)) {
       echo 'Strings starts with http:// or https://';    
}

如果你需要知道它是哪一个,use Wrikken's answer

答案 3 :(得分:1)

这是另一个:

function startsWithHttpOrHttps($haystack)
{
    return substr_compare($haystack, 'http://', 0, 7) === 0
        || substr_compare($haystack, 'https://', 0, 8) === 0;
}

在我的机器上,这超出了我的双strpos解决方案(即使添加substr以防止越过全长字符串)和正则表达式。

答案 4 :(得分:0)

$startsWithIt = (strpos($haystack, 'http') === 0);

如果您希望检查包括://您必须执行:

if((strpos($haystack, 'http://') === 0) || 
   (strpos($haystack, 'https://') === 0)) {
   echo 'Strings starts with http:// or https://';    
}