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 にも適用されます。どうすれば具体的に言えますか?

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 に答える