2009-10-16 3 views
1

Если я могу попросить, чтобы ответы не указывали на рамки или другие библиотеки, я был бы признателен. Я знаю об этом, и я получаю больше ответов, основанных на опыте для быстрых маленьких хаков.Смешивание php и html

Начните с некоторой базовой HTML

<html> 
     <head> 
      <meta http-equiv="Content-type" content="text/html; charset=utf-8" /> 
      <title>Page Title</title> 
     </head> 
     <body> 
     // something is going to happen here, could be more html, or php 
     </body> 
</html> 

Допустим, вы будете иметь сотни страниц, конечно, вы хотите модуляризуете это таким образом, чтобы иметь меньше дублирования кода.

Я видел, использовал и обсуждал многие тактики.

Основной метод включает в себя:

header.inc.php

<html> 
     <head> 
      <meta http-equiv="Content-type" content="text/html; charset=utf-8" /> 
      <title>Page Title</title> 
     </head> 
     <body> 

footer.inc.php

 </body> 
</html> 

Заглушка всех ваших сотен PHP страниц:

<?php include 'header.inc.php'; ?> 
    // html or other php can go here 
<?php include 'footer.inc.php'; ?> 

Получить al ittle более причудливый, и у вас есть var.inc.php, и вы можете установить $ page_title и иметь это перед первым включением, сохраняя время редактирования его из сотен страниц.

Метод функции:

show.inc.php

function display_header($page_title) { 
    echo " 
    <html> 
      <head> 
       <meta http-equiv="Content-type" content="text/html; charset=utf-8" /> 
       <title>$page_title</title> 
      </head> 
      <body>"; 

} 

Вы делаете то же самое для нижнего колонтитула, я подозреваю, вы получите идею. Я знаю, что многие из вас думают об объектах в этот момент, и я бы тоже хотел избежать этого обсуждения.

Считайте, что вы пытаетесь учить очень молодого ребенка некоторым принципам или пытаетесь заставить дизайнера двигаться в какой-то форме современной эпохи.

Какой либо метод, вы начинаете работать в случаях, когда вы собираетесь посмотреть выходные данные html и php в браузере. Для вывода исходного кода, который попадает в браузер, есть очень четкая вкладка и структура вкладок. И большую часть времени, глядя на источник сайта, я вижу html, который довольно ужасен. Вся одна строка, или различные формы отступов.

Как простым способом решить эту проблему?

Эта функция display_header() будет плюнуть в \ t по всему пространству, или пробелы, в зависимости от вашего редактора, которые сделают визуализированный вывод беспорядок.

Существует такой вариант:

function display_header($page_title) { 
    echo '<html>'; 
    echo '<head>'; 
    echo "\t" . '<meta http-equiv="Content-type" content="text/html; charset=utf-8" />'; 
    echo "\t" . '<title>' . $page_title . '</title>'; 
    echo '</head>'; 
    echo '<body>'; 

} 

Тогда вы получите в случаях:

echo '<table>'; 
foreach ($variable as $item) { 
     echo '<tr><td>' . $item . '</td></tr>'; 
} 
echo '<table>'; 

против

echo "\t" . '<table>' . "\n"; 
foreach ($variable as $item) { 
     echo "\t\t". '<tr><td>' . $item . '</td></tr>' . "\n"; 
} 
echo "\t" . '<table>' . "\n"; 

И теперь, вы только действительно напутал ваш php. Поэтому я начинаю думать о выходных буферах, и я собираюсь полностью увлечь дизайнера этой концепцией.Но я просто смешал больше html с php, которым я бы гордился.

И я честно никогда не был в состоянии рассчитаться с этим материалом:

<?php foreach ($variable as $item) { ?> 
.... 
<?php } ?> 

Оба дает гораздо лучше генерируется HTML, но для меня, это также приводит к более сложной PHP-файл. Довольно основной вопрос, я уверен, что будут некоторые сильные мнения и желание продвигаться к рамкам и ООП. Я понимаю эти методы, но опять же, я ищу лучшие предложения, которые ищут некоторые инструменты для человека, у которого никогда не будет страсти к программированию, и просто хочет, чтобы все было сделано, таким образом, чтобы они были эффективными.

+1

Непонятно, на ваш вопрос * есть *. Немного о отступе HTML-источника немного сложнее, потому что HTML на самом деле не заботится об этом. – pavium

+1

Есть ли здесь вопрос? Или это просто неуместное сообщение в блоге? – cletus

+0

Это много писем, чтобы спросить «как мне выводить довольно HTML-код?» – dnagirl

ответ

6

Забудьте о выделении вывода HTML при написании PHP. В противном случае вы тратите слишком много времени, беспокоясь о чем-то совершенно тривиальном.

Если вам нужно очистить вывод HTML, чтобы облегчить чтение дизайнера, запустите его через Tidy. Если это кажется неэффективным, помните, что вам нужно делать это только в разработке, а не в производстве.

1

Если вы действительно заботитесь о макете HTML при просмотре источника, то, возможно, посмотрите на PHP Tidy, если вы создадите HTML, вы можете вывести его с помощью различных параметров, таких как отступ и множество других конфигураций.

См http://us3.php.net/manual/en/book.tidy.php

1

Как ваш код становится более сложным, и ваши конструкции более сложные, я думаю, вы обнаружите, что шаблонный ответ. В конце концов, презентация должна быть отделена от логики, и это ядро ​​модели MVC.

Мне лично нравится Smarty

+0

Я не уверен, насколько я могу получить синтаксис своего суб-языка, который они использовали. Он сильно пахнет, как тег холодного слияния.Мне нужно более детально исследовать Это, вероятно, неправильно, но, думая о том, как работает умение, должно быть много слышно. Я уверен, что он работает с кешем, но для страниц, которые не могут быть прочитаны из кеша, есть, по сути, лодка, на которую находят и заменяет, что происходит, я уверен, что они очень регулярные, все дорогие вещи. Еще раз спасибо за предложение, я действительно прочту его и посмотрю, что я придумал. – user170579

1

Я думаю, вы должны пересмотреть ваше отвращение к последнему сниппета. PHP является лучшим в качестве языка шаблонов. Когда вы используете его таким образом, вы можете легко сделать макет дизайна и преобразовать его в динамическую страницу. Вы также можете использовать стандартные инструменты HTML с ним, взгляните на ZenCoding на пример того, что я говорю. Вы можете иметь правильную подсветку синтаксиса и все остальные лакомства. Вы также можете тривиально поддерживать некоторое подобие вдавливания и согласованности без каких-либо дополнительных усилий вообще.

Теперь я понимаю напряжение, которое вы чувствуете из-за того, что все становится грязным и уродливым. Ключ состоит в том, чтобы переместить сложную логику из шаблона в отдельные чистые PHP-файлы, чтобы файл шаблона выглядел скорее как HTML, чем PHP. iddqd предлагает использовать Smarty как язык шаблонов, но мне никогда не нравился Smarty. Я считаю, что в конечном итоге это просто бессмысленное перенаправление, а не полезная абстракция.

Из всех языков программирования, PHP является одним из лучших в качестве языка шаблонов. Не нужно подрывать его, как любой другой язык программирования.

+0

Спасибо, сэр. Думаю, мне придется привыкнуть к последнему фрагменту. Я вижу много в шаблонах Wordpress. Я хотел бы полностью разделить логику кода с презентацией html, и вы очень хорошо можете быть правы, использование - хороший способ сделать это. Я думаю, что моя самая большая проблема - видеть , что меня просто убивает :) Я посмотрю на материал zencoding, и я снова посмотрю на Smarty, хотя в последний раз, когда я смотрел на него, я очень чувствовал то же самое как и вы. Еще раз спасибо. – user170579

Смежные вопросы