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

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

<div>
<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')
3 ответа

Вы ищете 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'] Затем остальная часть вашего кода.

Это, если выражение else кажется мне законным, поэтому я попробую сделать это и посмотрю, как это происходит.;)

Изменить: К сожалению, Джон избил меня.:)


Вы должны добавить точки с запятой в свои утверждения внутри вашего 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');
}

licensed under cc by-sa 3.0 with attribution.