0

我如何使用strstr来完全匹配变量的内容而不是仅仅包含?

例如:

  • www.example.com/greenapples
  • www.example.com/redapples
  • www.example.com/greenapplesandpears

如果我的 URL 设置为变量$myurl并且我使用以下内容..

if (strstr($myurl, 'redapples')) {
echo 'This is red apples';
    }

然后它也适用于其他 URL,因为它们也包含单词 apples。我怎么能具体?

4

2 回答 2

1

嗯,比较一下?

if ('www.mydomain.com/greenapples' === $myurl) {
    echo 'green apples!';
}

更新

如果没有更多信息,我不确定这是否适合您的问题,但如果您只对 URL 的最后一部分感兴趣考虑到 URL 包含查询字符串(例如?foo=bar&bar=foo)的可能性,请尝试类似这个:

// NOTE: $myurl should be INCLUDING 'http://'
$urlPath = parse_url($myurl, PHP_URL_PATH);

// split the elements of the URL 
$parts = explode('/', $urlPath);

// get the last 'element' of the path
$lastPart = end($parts);


switch($lastPart) {
    case 'greenapples':
        echo 'green!';
        break;

    case 'greenapplesandpears':
        echo 'green apples AND pears!';
        break;

    default:
        echo 'Unknown fruit family discovered!';

}

文档:

http://www.php.net/manual/en/function.parse-url.php

http://php.net/manual/en/function.end.php

http://php.net/manual/en/control-structures.switch.php

于 2013-04-12T22:23:35.293 回答
1

我不了解 PHP,但是您应该可以通过使用一些字符串操作来做到这一点。使用 substr("www.mydomain.com/greenapples",strripos("www.mydomain.com/greenapples", "/"));

strripos - 返回子字符串的最后一个位置,在你的情况下说它的“/”。substr - 返回给定位置之后的子字符串

像这样的东西你可以试试。

于 2013-04-12T22:44:07.187 回答