如何在php中进行正则表达式链接

时间:2018-07-28 20:54:22

标签: php regex

我在regex php中有问题。需要正则表达式代码识别字符串中的链接 我的链接:https://mywebsite.com/cargallery/subcat/

    if( preg_match( '/(http|ftp|https):\/\/([\w_-]+(?:(?:\.[\w_-]+)+))(([^"]*cargallery[^"])*([\w_-]+)(\/|))?/', $requested_url,$mactches)) {
    // if url = https://mywebsite.com/cargallery/subcat/

    echo "true";

}else {
    //if  url= https://mywebsite.com/cargallery/subcat/dasdsad
    // or https://mywebsite.com/cargallery
    // or https://mywebsite.com
    echo "false";
}

2 个答案:

答案 0 :(得分:2)

只需使用if来查看是否匹配。无需使其比现在更复杂。

if($requested_url == "https://mywebsite.com/cargallery/$subcat/"){
    echo "true";
}else{
    echo "false";
}

答案 1 :(得分:1)

对于正则表达式,您可以使用anchors声明字符串的开始^和结束$

没有锚,您的正则表达式将匹配,例如https://mywebsite.com,而preg_match将返回1。

^(http|ftp|https):\/\/([\w_-]+(?:(?:\.[\w_-]+)+))(([^"]*cargallery[^"])*([\w_-]+)(\/|))?$

Demo