Php 检查路径是否在url中

Php 检查路径是否在url中,php,Php,我要在url中检查路径。我该如何隔离 “pages/morepages/” 我尝试在我的url上运行解析url函数,然后得到路径。但我不知道如何访问该数组中的密钥。例如 $url = 'http://www.mypage.com/pages/morepages/'; print_r(parse_url($url)); if ($url['path'] == '/pages/morepages/') { echo 'This works.'; }; 我想在该路径是否存在的情况下运行

我要在url中检查路径。我该如何隔离

“pages/morepages/”

我尝试在我的url上运行解析url函数,然后得到路径。但我不知道如何访问该数组中的密钥。例如

$url = 'http://www.mypage.com/pages/morepages/';

print_r(parse_url($url));

if ($url['path'] == '/pages/morepages/') {
    echo 'This works.';
};

我想在该路径是否存在的情况下运行if条件,但访问该路径时遇到问题。

如果您只是在另一个字符串中查找一个字符串,将非常有效

echo strpos( $url, $path ) !== false ? 'Exists' : 'Does Not Exist' ;

如果您只是在另一个字符串中查找一个字符串,将非常有效

echo strpos( $url, $path ) !== false ? 'Exists' : 'Does Not Exist' ;
你可以简单地使用

if (parse_url($url['path'], PHP_URL_PATH) == '/pages/morepages/') {
    echo 'This works.';
} // No semicolon
不过,使用strpos()可能更好,因为它要快得多。

您只需使用

if (parse_url($url['path'], PHP_URL_PATH) == '/pages/morepages/') {
    echo 'This works.';
} // No semicolon

不过,最好使用strpos(),这要快得多。

只需将函数的结果赋给任何变量即可:

$parts = parse_url($url);

if ($parts['path'] == '/pages/morepages') {
}

只需将函数的结果分配给任何变量:

$parts = parse_url($url);

if ($parts['path'] == '/pages/morepages') {
}

类似于在字符串中查找的东西

if ( strpos($url['path'], '/pages/morepages/') !== false ){
//echo "this works";
}

类似于在字符串中查找的东西

if ( strpos($url['path'], '/pages/morepages/') !== false ){
//echo "this works";
}
给你

$url = 'http://www.mypage.com/pages/morepages/';

    if (strpos($url, '/pages/morepages/') !== false) {
        echo "found";
    } else {
        echo "not found";
    }
给你

$url = 'http://www.mypage.com/pages/morepages/';

    if (strpos($url, '/pages/morepages/') !== false) {
        echo "found";
    } else {
        echo "not found";
    }

Parse_url需要向新数组变量返回一些内容。因此,请使用:

$parsedUrl = parse_url($url));

if ($parsedUrl['path'] == '/pages/morepages/') {
    echo 'This works.';
};

Parse_url需要向新数组变量返回一些内容。因此,请使用:

$parsedUrl = parse_url($url));

if ($parsedUrl['path'] == '/pages/morepages/') {
    echo 'This works.';
};

您没有将
parse_url
的输出分配给变量
$url
仍然等于字符串(
parse\u url
返回一个数组,它不会修改传入的字符串)


$url=parse_url($url)

您没有将
parse\u url
的输出分配给变量
$url
仍然等于字符串(
parse\u url
返回一个数组,它不会修改传入的字符串)


$url=parse_url($url)

引用文档:
如果您只想确定某个特定的指针是否出现在haystack中,请使用更快、内存占用更少的函数strpos()。
@Tom Good point。我必须停止在我的个人项目中使用strstr答案已更新。这是不正确的。STRPO可以返回0,您必须使用!==错。编辑:你是对的。我必须使用!==语法。这是正确的答案。非常感谢。引用文档:
如果您只想确定某个特定的指针是否出现在haystack中,请使用更快、内存占用更少的函数strpos()。
@Tom Good point。我必须停止在我的个人项目中使用strstr答案已更新。这是不正确的。STRPO可以返回0,您必须使用!==错。编辑:你是对的。我必须使用!==语法。这是正确的答案。非常感谢。