PHP条件语句不起作用

I have a statement that checks the page's url and marks up a page accordingly, but it only works when my if statement has one option to check for.

$url = 'http://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];

<?php if (strpos($url, 'events/eventname')!= false) { ?>
    ~markup~
<? } ?>

If I modify it to check for two possible urls...

<?php if (strpos($url, 'events/eventname')!= false) { ?>
    ~markup~
<? }else if (strpos($url, 'events/othereventname')!= false) { ?>
    ~markup~
<? } ?>

... the page won't load. I must be missing something obvious- can someone tell me what is wrong with this function?

*edit: Since it was requested I have included the $url variable and more specific url examples

strpos returns 0 when search substring is in the beginning of the query string. You can replace != to !== to make it work - otherwise php is internally transforming false to zero, which leads to incorrect comparison result.

For example:

<?php
var_dump(strpos('aaa', 'a'));
echo var_dump(strpos('aaa', 'a') === false);
echo var_dump(strpos('aaa', 'a') == false);

Rather than using the strpos() you can get the request uri which is anything after the domain name (ie: www.example.com/foo/bar would give you /foo/bar).

$url = $_SERVER['REQUEST_URI'];

if($url == "/foo/bar") {
    // markup
} elseif($url == "/bar/foo") {
    // markup
} else {
    // markup
}

Try to use !== comparison just just in case string is at position 0.

Another syntax problem is else if, while you should use elseif.

Try also changing short php tag <? to full one <?php.