Strpos总是给出真实的

时间:2016-09-15 03:21:37

标签: php strpos

我有两种类型的链接,它们是从数据库中获取的字符串:

http://www.website.com/anything-else.html
www.website.com/anything-else.html

我需要使用http://显示所有链接,无论如何,我使用这个简单的代码来确定链接中是否包含http,如果不添加它:

if (strpos($links, 'http') !== true) {
    $linkai = 'http://'.$links;
}

问题是,它将http://添加到任何链接,无论它是否具有。 我试过== false等。什么都行不通。有什么想法吗?

2 个答案:

答案 0 :(得分:0)

试试这个

if (strpos($links, 'http') === false) {
   $linkai = 'http://'.$links;
}

在strpos文档中,返回值始终不是布尔值。

“警告 此函数可能返回布尔值FALSE,但也可能返回非布尔值,其值为FALSE。有关更多信息,请阅读有关布尔值的部分。使用===运算符测试此函数的返回值。“

答案 1 :(得分:0)

$arrParsedUrl = parse_url($links);
            if (!empty($arrParsedUrl['scheme']))
            {
                // Contains http:// schema
                if ($arrParsedUrl['scheme'] === "http")
                {

                }
                // Contains https:// schema
                else if ($arrParsedUrl['scheme'] === "https")
                {

                }
            }
            // Don't contains http:// or https://
            else
            {
                $links = 'http://'.$links;
            }
            echo $links;