Оператор PHP if со ссылками

Я пытаюсь написать оператор IF, чтобы, когда пользователь находится на определенной странице, отображался дополнительный контент. Я написал это:

<?php
if (strpos($_SERVER['PHP_SELF'], 'about.php')){
        <ul class="vertical-list">
        <li><a href='/' class='button' onclick="return false;">Work Experience</a></li>
        <li><a href='/' class='button' onclick="return false;">Education</a></li>
        <li><a href='/' class='button' onclick="return false;">Skills</a></li>
        <li><a href='/' class='button' onclick="return false;">Portfolio</a></li>
        </ul>;
}
?>

Таким образом, когда пользователь находится на странице сведений, список навигации будет отображаться на боковой панели, но будет скрыт, если пользователь уйдет со страницы сведений. Текущий код дает мне эту ошибку: Parse error: syntax error, unexpected '<' in C:\xampp\htdocs\includes\sidebar.php on line 54


person Nick    schedule 29.12.2011    source источник
comment
как насчет того, чтобы действовать так, как вы не ожидали?   -  person Greg Guida    schedule 29.12.2011


Ответы (3)


PHP strpos возвращает успешный результат с основанием 0, поэтому вам нужно правильно проверить результат «ничего не найдено», И вам нужно закрыть и снова открыть свои теги PHP:

<?php
if (strpos($_SERVER['PHP_SELF'], 'about.php') !== false){ 
?>
        <ul class="vertical-list">
        <li><a href='/' class='button' onclick="return false;">Work Experience</a></li>
        <li><a href='/' class='button' onclick="return false;">Education</a></li>
        <li><a href='/' class='button' onclick="return false;">Skills</a></li>
        <li><a href='/' class='button' onclick="return false;">Portfolio</a></li>
        </ul>;
<?php
}
?>
person Matt H    schedule 29.12.2011
comment
Хорошо - я был бы признателен, если бы вы отметили мой ответ как правильный, если он сработал для вас. - person Matt H; 29.12.2011

Вы забыли отобразить HTML. Либо используйте echo, либо отключите PHP для отображения HTML.

person VettelS    schedule 29.12.2011

Вам нужно закрыть тег PHP после оператора if, например:

  <?php
  if (strpos($_SERVER['PHP_SELF'], 'about.php')) { ?>
       <ul>
           ...
       </ul>

  <?php
  }
  ?>

Вы не можете поместить обычный HTML в теги PHP, если вы не повторите его или не закроете теги PHP. Лично я предпочитаю закрывать теги PHP, так как это облегчает чтение HTML.

Надеюсь, это поможет. Удачи.

person Jemaclus    schedule 29.12.2011
comment
Плюс <?php после </ul> - person Matt H; 29.12.2011