2014-01-30 2 views
2

Я хочу проверить, содержит ли мой текущий URL «/ demo» в конце URL-адреса, например mysite.com/test/somelink/demo, чтобы что-то сделать. Вот моя попытка:php: если текущий url содержит «/ demo» сделать что-то

$host = $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI']; 
if($host == 'mysite.com/test/somelink/demo') 
{ 
// Do something 
} 
else 
{ 
// Do something 
} 

Это, кажется, работает нормально, но проблема заключается в том, что /somelink потребности в помощи динамически.

Любое предложение о том, как я могу это сделать?

Спасибо!

Edit:

<?php 
/* An abstract class for providing form types */ 
abstract class ECF_Field_Type { 
    private static $types = array(); 
    protected $name; 

    /* Constructor */ 
    public function __construct() { 
     self::register_type($this->name, $this); 
    } 

if(basename($_SERVER['REQUEST_URI']) == 'stats'){ 
echo "Hello World"; 
} 

    /* Display form field */ 

    public abstract function form_field($name, $field); 

    /* Display the field's content */ 
    public function display_field($id, $name, $value) { 
     return "<span class='ecf-field ecf-field-$id'>" 
      . "<strong class='ecf-question'>$name:</strong>" 
      . " <span class='ecf-answer'>$value</span></span>\n"; 
    } 


    /* Display field plain text suitable for email display */ 
    public function display_plaintext_field($name, $value) { 
     return "$name: $value"; 
    } 

    /* Get the description */ 
    abstract public function get_description(); 
} 
?> 
+0

как насчет: 'если (подстрока ($ _ SERVER [ 'REQUEST_URI'] , -4) == "demo") {} ' –

ответ

3

Просто используйте,

if(basename($_SERVER['REQUEST_URI']) == 'demo'){ 
    // Do something 
} 
+0

Просто попытался, но я получаю странную синтаксическую ошибку:' Ошибка синтаксиса: ошибка синтаксиса, неожиданный T_IF, ожидающий T_FUNCTION in' – agis

+0

После моего редактирования? – Rikesh

+0

Да, я думаю, что-то не так с моим кодом, но я не понимаю, почему, я отредактировал свой вопрос с тем, что я пробовал, пожалуйста, взгляните ... – agis

0

This post имеет PHP код для простого startsWidth() и EndsWith() функции в PHP, которые вы могли бы использовать. Ваш код будет в конечном итоге выглядит так:

$host = $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI']; 
if(endsWith($host, '/demo')) 
{ 
// Do something 
} 
else 
{ 
// Do something 
} 

Но одна вещь, которую вы можете сделать в дополнение к этому, это конвертировать $ хоста в нижний регистр, так что случай URL не имеет значения. EDIT: Это будет в конечном итоге выглядит так:

$host = $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI']; 
if(endsWith(strtolower($host), '/demo')) 
0

вы можете использовать strpos

$host = 'mysite.com/test/somelink/demo'; 
if(strpos($host,'demo')) 
    { 
// Do something 
    echo "in Demo"; 
} 
else 
{ 
// Do something 
echo "not in Demo"; 
} 
1
<?php 
    if (preg_match("/\/demo$/", $_SERVER['REQUEST_URI'])) { 
     // Do something 
    } else { 
     // Do something else 
    } 
?> 
+0

Просто попробовал, и я получаю странную синтаксическую ошибку: 'Ошибка синтаксиса: ошибка синтаксиса, неожиданный T_IF, ожидающий T_FUNCTION in' – agis

0
$str = 'demo'; 
if (substr($url, (-1 * strlen($str))) === $str) { /**/ } 
Смежные вопросы