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')

3 ответов


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

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

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

Вам также нужно будет удалить "http: / /" из проверки - $host будет содержать только все после "http://"

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

Итак, ваш 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'] затем остальная часть кода.

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

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');
}