За последние 24 часа нас посетили 20376 программистов и 1089 роботов. Сейчас ищут 839 программистов ...

Вставка PHP-переменной в HTML код

Тема в разделе "PHP для новичков", создана пользователем Freakmeister, 1 ноя 2010.

  1. Freakmeister

    Freakmeister Активный пользователь

    С нами с:
    20 дек 2009
    Сообщения:
    888
    Симпатии:
    5
    Как правильно вставить переменную в HTML? В таком виде не работает:
    HTML:
    1. <a href="".$siteurl."/forum">Форум</a>
    и в таком тоже:
    HTML:
    1. <a href="".$siteurl/forum."">Форум</a>
    Такой синтаксис работает, только если выводить всю вёрстку через echo, но тогда приходится экранировать все кавычки, что геморно:
    HTML:
    1. <a href="$siteurl/forum">Форум</a>
    Можно конечно сделать вот так, но это уже извращение помоему:
    HTML:
    1. <a href="<?php echo "$siteurl"; ?>/forum">Форум</a>
    Как вообще это делается правильно? Чтоб не на коленке и во всех браузерах выглядело одинаково.
     
  2. WildZero

    WildZero Активный пользователь

    С нами с:
    24 фев 2010
    Сообщения:
    242
    Симпатии:
    0
    Адрес:
    Пермь
    PHP:
    1. <a href="<?=$siteurl;?>/forum">Форум</a>
     
  3. Freakmeister

    Freakmeister Активный пользователь

    С нами с:
    20 дек 2009
    Сообщения:
    888
    Симпатии:
    5
    Спасибо. Не загуглилось чот.) А точка с запятой после переменной точно нужна?
     
  4. ideea

    ideea Активный пользователь

    С нами с:
    3 окт 2009
    Сообщения:
    60
    Симпатии:
    0
    не обязательно, и лучше не используйте <?=, а используйте <?php print/echo $var ?>
     
  5. A.B.C.

    A.B.C. Активный пользователь

    С нами с:
    3 мар 2010
    Сообщения:
    109
    Симпатии:
    0
    <a href="<?php print $siteurl; ?>/forum">Форум</a>

    правильно извращение
     
  6. Freakmeister

    Freakmeister Активный пользователь

    С нами с:
    20 дек 2009
    Сообщения:
    888
    Симпатии:
    5
    Так... мнения разделились.) Чем писать каждый раз такую ересь, мне проще всю вёрстку сделать через print или echo, ибо код будет выглядеть наглядней. А почему <?= лучше не использовать?
     
  7. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    Говорят, что в след версиях php этой сокращенной нотации не будет
     
  8. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    Freakmeister
    существует два подхода разработки на пхп:

    1. вставка пхп в хтмл - <div><?php echo $var; ?></div>
    2. вставка хтмл в пхп - <?php echo '<div>'.$var.'</div>'; ?>

    начинающие работают по первому способу, а те, кто продвинулся чуть дальше - по второму.
    не знаю как работают гуру (может быть снова по 1-му способу :-D ), но при использовании
    MVC используется второй способ, а при шаблонизаторах этот вопрос вообще отпадает.

    UPD. дело в том, что у начинающих хтмл кода больше, чем пхп.
    а у более продвинутых пхп кода (логики работы) больше, чем хтмл (оформления).

    рано или поздно, но всё равно придёшь к шаблонизаторам ;)
     
  9. Freakmeister

    Freakmeister Активный пользователь

    С нами с:
    20 дек 2009
    Сообщения:
    888
    Симпатии:
    5
    Вообще, я задумывал сделать так, чтобы вёрстку можно было просматривать дримвивером через вкладку Design и править её там же. Второй способ этого не позволяет, а первый плохочитабельный.)

    А если использовать такую вставку хтмл в пхп?

    <?php echo "<div>$var</div>"; ?>

    Тоесть, без всяких точек. Такой синтаксис работает во всех браузерах. Вот только не потеряет ли такой сайт функциональности в будущем?
     
  10. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    стандарт хтмл требует оформлять атрибуты тегов в двойные кавычки.

    думаю, что такой вариант

    <?php echo '<input type="text" name="'.$name.'" value="'.$val.'">'; ?>

    проще чем

    <?php echo "<input type=\"text\" name=\"$name\" value=\"$val\">"; ?>
     
  11. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    Freakmeister
    вобще разговор ни о чем. =)
     
  12. Vladson

    Vladson Старожил

    С нами с:
    4 фев 2006
    Сообщения:
    4.040
    Симпатии:
    26
    Адрес:
    Estonia, Tallinn
    Нет, это вполне нормальный подход.
    А вот это уже под вопросом, имхо как раз это извращение...

    Уже сейчас на многих хостингах отключено