我需要检查一个变量,看看该字符串是以http://还是https://
开头的如果存在则执行其他操作。我该怎么做呢?
答案 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)
答案 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://';
}