PHP, если URL-адрес равен этому, выполните действие

Поэтому у меня есть заголовок страницы, который является частью шаблона Magento; Я бы хотел, чтобы он отображал 1 из 2 вариантов, в зависимости от того, какой URL-адрес. Если URL-адрес является параметром 1, заголовок заголовка 1. Если URL-адрес – что-то еще, заголовок заголовка 2. Это то, что я придумал, но это приводит к сбою страницы:

<div class="page-title"> <h1><?php $host = parse_url($domain, PHP_URL_HOST); if($host == 'http://domain.com/customer/account/create/?student=1') { echo $this->__('Create an account if you are a Post Graduate Endodontic Resident and receive our resident pricing. Please fill in all required fields. Thank you!') } else { echo $this->__('Create an Account') } ?></h1> </div> 

У кого-нибудь есть идеи?

EDIT: Значит, это должно выглядеть так?

 $host = $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI']; if($host == 'http://domain.com/customer/account/create/?student=1') 

Вы ищете URL-адрес, на котором в данный момент находится страница? Вы используете parse_url неправильно; то есть, если вы хотите получить хост или домен, то есть только «dev.obtura.com». Похоже, ты хочешь большего. Кроме того, вы никогда не устанавливаете переменную $domain , поэтому parse_url() не знает, что с ней делать. Так как теперь, ваш оператор if всегда будет возвращать «Создать учетную запись».

Вместо этого установите $host с переменными $ _SERVER :

$host = $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];

Вам также нужно будет удалить «http: //» из вашей проверки – $host будет содержать все после «http: //»,

Как предложил Арон Седерхолм , вам нужно добавить точки с запятой ( ; ) до конца ваших эхо-заявлений.

Итак, ваш PHP-код должен выглядеть так:

 $host = $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI']; if($host == 'domain.com/customer/account/create/?student=1') { echo $this->__('Create an account if you are a Post Graduate Endodontic Resident and receive our resident pricing. Please fill in all required fields. Thank you!'); } else { echo $this->__('Create an Account'); } 

Я не уверен, что вы получаете право домена. Я не очень разбираюсь в parse_url, и вы не показали нам, что такое $domain .

Обычно, если я хочу получить доменное имя, я бы сделал это: $host = $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'] $host = $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'] Затем остальная часть вашего кода.

Это, если выражение else кажется мне законным, так что я бы попробовал выше и посмотрел, как это происходит. 😉

Edit: К сожалению, Джон избил меня. 🙂

Вы должны добавить точки с запятой в свои утверждения внутри вашего if-else.

 if($host == 'http://dev.obtura.com/customer/account/create/?student=1') { echo $this->__('Create an account if you are a Post Graduate Endodontic Resident and receive our resident pricing. Please fill in all required fields. Thank you!'); } else { echo $this->__('Create an Account'); }