2017-05-12 4 views
0

URLの一部を取得する次のPHPがあります。URLをPHPで取得する

私は www.mysite.com/my-team2.php URL を持っており、それはmy team代わりのmy team2をエコーし​​ます。

$page = 'http://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI']; 
if (strpos(strtolower($page),'my-team') !== false) { 
    echo 'my team'; 
} elseif (strpos(strtolower($page),'my-team2') !== false) { 
    echo 'my team2'; 
} 

なぜですか?

+0

で最も具体的な一致を置く必要がありますか?最初のifは常にtrueです。 – YvesLeBorg

+0

'my-team2.php'には文字列' my-team'も含まれているためです。 –

答えて

4

それは最初の最初のインスタンスを見つけることですので、これは決して起こらない場合は、何をやるべきことは

if (strpos(strtolower($page),'my-team2') !== false) { 
echo 'my team2'; 
} elseif (strpos(strtolower($page),'my-team') !== false) { 
echo 'my team'; 
} 

はとても基本的にはそれらを交換することなく、何をやっていた "テキストを見つけたそれらを交換される他、です'my-team2'というテキストがテキスト 'my-team2'の一部であるため、常にelse = ifを参照することなく常にifをトリガーします。ifは常に== TRUEなので、my-team '

my-teamが含まれているためです

+0

urlに "my-team22"が含まれているとどうなりますか?レギュラー式を使う方が良いです。 –

1

をトリガする場合、それは、その後他、2はそれにないのであれば、それは最初に見つけなければなりません「私の-team2」、それらを交換し、最初の2を置くことによって

my-team2にあるので、最初のテストは既に真です。

逆順にするか、文字列全体を比較するなどの別の方法を使用するか、正規表現の一致を使用します。

1

"my-team"は "my-team2"の部分文字列なので、この種のシチュエーションで正規表現を使用する方が良いでしょう。

0

「私の-team2は」「私のチーム」が含まれているため、あなたは最初

echo strpos(strtolower($page),'my-team2') !== false ? 'my-team2' : strpos(strtolower($page),'my-team2') !== false ? 'my-team' : '';