Php отступ первой строки

Как правильно сделать отступ для PHP / HTML смешанного кода?

При смешивании PHP и HTML, какой стиль следует использовать в качестве отступа? Я делаю отступ таким образом, чтобы выводимый HTML имел правильный отступ, или так, что сочетание PHP/HTML выглядело должным образом отформатированным (и, следовательно, его легче читать)? Например, скажем, что у меня есть строки строк строки вывода foreach . Какой из них ниже? Соединение PHP/HTML выглядит правильно:

Я обнаружил, что, когда я сталкиваюсь с этой ситуацией (довольно часто), у меня нет стандартного стиля для использования. Я знаю, что не может быть «правильного» ответа, но мне бы хотелось услышать мысли от других разработчиков.

6 ответов

Каждый PHP и HTML должны иметь отступ, чтобы они были правильны по отношению к себе в исходной форме независимо друг от друга и в виде формы:

@Dane411: Dane411: Если вы строите строку с использованием синтаксиса heredoc, сделайте отступ в виде HTML. Если вы строите его из небольших встроенных строк, забудьте о отступах HTML, потому что визуальная понятность содержимого HTML уже вымыта, и запутывание ситуации с более неловкими соглашениями ничем не поможет.

Я тоже часто обдумывал этот вопрос, но потом я понял, кто заботится о том, как выглядит HTML-выход? Ваши пользователи не должны смотреть на ваш HTML в любом случае. Это для ВАС читать, и, может быть, пару других разработчиков. Держите исходный код как можно более чистым и забудьте о том, как выглядит вывод.

Читайте также:  Webpack svg sprite html

Если вам нужно отладить вывод, используйте инструменты разработчика Chrome, Firebug или даже инструменты F12.

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

+1: так я и пишу (ну, за исключением того, что я использую фигурные скобки, а не двоеточие / конечную форму и четыре пробела на уровень отступа); Я просто адаптировал условности OP для удобства.

Вы не должны использовать короткие открывающие теги. Вы можете столкнуться с различными проблемами с вашим кодом, связанным с настройкой php short_open_tag.

@markus: Как написано на моей странице в Википедии, вы можете использовать мои короткие метки, когда вынимаете их из моих холодных мертвых рук. А если серьезно, я думаю, что я способен справиться с тэгом версии XML.

Если вы хотите следовать PSR-2, вы можете использовать короткие теги только в сочетании с сокращенным синтаксисом echo (длинные теги везде).

что мне нравится в этом соглашении поставить »

  • Прямой ответ на ваш вопрос: если вам нужно часто читать HTML-выход, неплохо бы вывести хорошо отступы HTML. Но более распространенным случаем будет то, что вам нужно прочитать исходный код php, поэтому важно, чтобы источник был легко читаемым.
  • Альтернатива двум указанным вами опциям: см. хаос или ответ tj111.
  • Лучше все еще на мой взгляд: не смешивайте HTML и php, используйте вместо этого механизм шаблонов.

Спасибо за комментарии Треб. Даже если бы я использовал движок шаблонов, все равно оставался бы вопрос: как правильно сделать отступ для тегов HTML / шаблонизатора.

@chaos: я знал, что ответ придет . Возможно, так и есть, но то, что я вижу в примерах кода здесь, это не правильное использование шаблонизатора, а плохая смесь кода и дизайна.

Вы не должны беспокоиться о отступке разметки в рабочей среде. Также вы не должны использовать Tidy или другие очистители HTML. Имеются допустимые варианты использования, например. когда вы разрешаете ввод HTML (но вместо этого используйте Markdown), хотя они встречаются редко.

Чаще всего фильтры HTML-фильтров злоупотребляют, чтобы скрыть основные проблемы с кодом. Не. Исправьте свою разметку вручную.

Если вам нужно отступывать свой код только в среде разработки, вы можете использовать любой из указанных выше. Однако будьте осторожны, что эти библиотеки попытаются исправить вашу разметку (что их основная цель, отступ является побочным продуктом). Я написал инструмент indentation, основанный на регулярном выражении Dindent.

Dindent преобразует разметку следующим образом:

     
A cell test!
Cell
CellCellCe ll
Test Ce ll
CellCellCell
     
A cell test!
Cell
Cell Cell Ce ll
Test Ce ll
Cell Cell Cell

Dindent не будет пытаться санировать или иным образом мешать вашему коду, кроме добавления отступа. Это упростит вашу разработку/отладку. Не для производства.

Источник

Php отступ первой строки

Для того, чтобы обернуть каждую строку с помощью функции preg_replace нам понадобится:

Функция «preg_replace». Принцип замены аналогичен выше приведенному пункту, лишь отличается «представление» искомой части — она записывается немного по-другому!

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

Примерно похожую ситуацию мы рассматривали, когда заменяли перенос на другой тег.

Обернуть строку в абзац с помощью -> цикла

Для того, чтобы каждый абзац обернуть в тег абзаца можно использовать цикл!

Какая разница между заменой переноса в функции и замены переноса в цикле?

Дело в том, что если ваш сайт построен по определенным правилам, то при необходимости можно настраивать форматирование. но это чуть дальше.

Каждую строку в тег абзаца в цикле.

Для того, чтобы обернуть текст и в нём каждую строку в тег абзаца нам понадобится:

Первым шагом, нам нужно превратить текст в массив, для этого нам нужна функция explode ..

Далее. возьмем цикл и в каждом витке оборачиваем абзац в тег абзаца.

И последнее. возвращаем массив в текст. Здесь возможны два варианта :
1). Превращение ячеек массива сразу внутри цикла в текст.
2). Либо — оборачиваем ячейку, а потому уже массив возвращаем в текст(строку) с помощью implode. Рассмотрим оба варианта.

Цикл для оборачивания строки в абзац:

Первый вариант оборачивание каждой строки в абзац в цикле, сразу будем возвращать обернутую строку в новую переменную «$NEW_TEXT».

Вы должным были заметить перед заком равно точку, что означает приклеивание следующей строки следом за предыдущей:

В конце строки не забываем вернуть перенос строки. ведь explode убил перенос в начальном тексте.

$array_text = explode(«\n» , $example);

Второй вариант — каждую строку в тег абзаца:

И далее перед нами. задачка : «Найди 3 отличия. «

$array_text = explode(«\n» , $example);

$array_text[$i] = ‘

‘.$array_text[$i].’

‘ . «\n»;

$example = implode(«\n» , $array_text );

Это довольно обширная тема, но взгляните на некоторые особенности данной страницы. например:

Кнопка скопировать ссылку.

Если бы на данной странице были бы картинки(как на этой), то alt и title у них уникальные в зависимости от абзаца. Это все форматирование происходит в цикле! Php замечательная вещь!

Источник

Форум PHP программистов ► PHP практикум ► PHP для начинающих

Сообщений: 142
Пользователь №: 38937
На форуме:
Карма:

Всем привет, у меня есть такая строка:

return $this->N0.
.$this->N0eng.
.$this->N0ukr;

Мне кажется что это не очень хорошо выглядит, может сформулироваться впечалтелния быдло кода, есть какие то более корректные альтернативы для отступов в php коде?

Сообщений: 6383
Пользователь №: 35718
На форуме:
Карма: 206

Сообщений: 142
Пользователь №: 38937
На форуме:
Карма:

Сообщений: 6383
Пользователь №: 35718
На форуме:
Карма: 206

Сообщений: 142
Пользователь №: 38937
На форуме:
Карма:

Valick
Ну окау, просто как то на работе на review, когда смотрели мой код, мне сказали что это вообще не очень круто, что есть другие способы для переноса строки, но это было мое первое review и как то я не осмелился спросить какие именно это способы)

Сообщений: 6383
Пользователь №: 35718
На форуме:
Карма: 206

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

Профиль
Группа: Сын полка
Сообщений: 2537
Пользователь №: 38654
На форуме:
Карма: 49


$string = implode(PHP_EOL, array('line1', 'line2');
echo '
', $string, '

';

Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации

Сообщений: 17419
Пользователь №: 6543
На форуме:
Карма: 327

Трезвый :
12 лет, 6 месяцев, 30 дней

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

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image

Профиль
Группа: Сын полка
Сообщений: 2537
Пользователь №: 38654
На форуме:
Карма: 49

Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации

Сообщений: 647
Пользователь №: 28374
На форуме:
Карма: 23

return $this->N0. br().$this->N0eng. br() .$this->N0ukr;

function br()
return "
\n";
>

Сообщений: 6383
Пользователь №: 35718
На форуме:
Карма: 206

Завсегдатай форума

Профиль
Журнал
Группа: ★ЛжеЭксперт★

Сообщений: 3900
Пользователь №: 21196
На форуме:
Карма: 88

В php нет ни одного способа сделать перенос не средствами html/css, потому, что работу php видно только через html - он создан, чтоб его делать .

Можно как-то поиграть с margin или padding, но это уже извращение. Как уже сказали, тут наиболее приемлимый вариант

. Обычно такой кусок заварачивают в div с классом, чтоб потом через css задавать свойства.

Источник

Оцените статью