用 php 检查 URL 的最后一部分


check last part of URL with php

我正在使用Zend Framework。我想检查链接的最后一部分。我的链接http://localhost/sports/soccer/page_id/776543233242
我的 URL 的最后一部分必须有 12 或 11 位数字,我希望该部分的第一部分以 8 开头(如果 11 位),如果 7 位以 12 位开头。

public function detailAction ()
{
    $uri = Zend_Controller_Front::getInstance()->getRequest()->getRequestUri();
     if (substr(substr($uri, -12),1)=='7'){
        echo "successfull";
     }
     else if (substr(substr ($uri , -11),8)=='0'){
        echo "succ";
     }
     else {
        echo "failed";
     }
}

这应该适合您:

<?php
       $url = "http://localhost/sports/soccer/page_id/776543233242";
       $part = basename($url);
       if(strlen($part) == 11 && $part[0] == 8 || strlen($part) == 12 && $part[0] == 7)
            echo "yes";
        else
            echo "no";
?>

输出:

yes

在 php 中使用basename()函数获取 url 的最后一部分,然后计算字符串。使用strlen检查单词数。使用以下代码

    public function detailAction ()
{
    $url = Zend_Controller_Front::getInstance()->getRequest()->getRequestUri();
           $url = "http://localhost/sports/soccer/page_id/776543233242";
           $basename = basename($url);
           if(strlen($basename) == 11 && $basename[0] == 8 || strlen($basename) == 12 && $basename[0] == 7){
                echo "succ";
    }
            else{
                echo "failed";
    }
    }

希望这对你有帮助

请参阅parse_url。然后,您可以获取路径并将其拆分为/

function isValidUrl($url)
{
    $elements = parse_url($url);
    if ($elements === false) {
        return false;
    }
    $lastItem = end(explode("/", $elements['path']);
    return ((strlen($lastItem) == 12 && $lastItem[0] == '7') || (strlen($lastItem) == 11 && $lastItem[0] == '8'));
}

如果您只想从您的 url 中获取数字,我建议您使用正则表达式。 在这种情况下:

$url="http://localhost/sports/soccer/page_id/776543233242";
$regex = "/[0-9]+/";
preg_match_all($regex, $url, $out); //$out will be an array storing the mathcing strings, preg_match_all creates this variable to us
var_dump($out);

此代码输出$out .它将看起来像这样:

array(1) {
[0]=>
    array(1) {
    [0]=>
        string(12) "776543233242"
    }
}

我希望它能帮助你。

显然,所需的 url 部分对应于 page_id 参数。

使用 Zend Framework,你可以做这样的事情来获取这个参数的值:

$page_id = $this->getRequest()->getParam('page_id');
if(strlen($page_id) == 11 && $page_id[0] == 8 
|| strlen($page_id) == 12 && $page_id[0] == 7)
    echo "yes";
else
    echo "no";