Как сделать отступ в php

Обновлено: 05.07.2024

Если бы я запустил это, следующий HTML-код будет отображать все строки без каких-либо разрывов строк:

Если я запустил следующий код:

Это рана делает следующий красивый HTML:

Есть ли способ, которым я мог бы достичь этих красивых отступов, не помещая \t перед каждой строкой, я хочу отступать. Я имею в виду, что я могу отложить блок вместо одной строки.

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

С другой стороны, вам не нужно постоянно использовать команды echo для вывода HTML. PHP – это более или менее язык шаблонов, поэтому вы можете просто выйти из PHP, вывести свой HTML в свой собственный формат и затем повторно ввести PHP.

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

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

Прежде всего используйте:

Код намного яснее.

Если вы хотите вернуть HTML-код в PHP, нет другого способа делать отступы.

Однако почему вы хотите печатать HTML-код в PHP? Вы не можете просто выйти из блока PHP здесь?

Я бы предложил использовать HEREDOC для этого. Лучше всего хранить большие блоки HTML и Text, которые вы хотите сохранить форматированием:

Вы также можете сделать

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

Здесь он использует пример Доминика Барнса с циклом:

может также сделать:

NOWDOC также доступен в 5.3+, которые действуют как одинарные кавычки без переменного разбора.

Строки HEREDOC и NOWDOC могут быть объединены так же, как и обычные строки.

Если вы помещаете свои идентификаторы изображения в массив, вы можете сделать цикл foreach (), который перекликается с каждым изображением с новой строкой и символами табуляции спереди, без необходимости ее кодирования вручную. Например

Я попробовал Tidy, но по какой-то причине, независимо от того, как я его настраиваю, он не будет отступать. Однако кто-то еще написал код, который будет:

Функция PHP для очистки кода HTML и JavaSctipt

Существуют также некоторые разумные рекомендации по устранению необходимости в таком коде:

Получите красиво отступы HTML с вашими шаблонами PHP: два правила, которым нужно следовать

Это руководство продолжает и расширяет PSR-1, основной стандарт написания кода.

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

Эти правила оформления являются производным от сходства между разными участвующими проектами. Когда разные авторы сотрудничают в нескольких проектах, это помогает иметь один набор нормативов для использования между всеми этими проектами. Таким образом польза этого руководства не в самих правилах, а в обмене этими правилами.

Ключевые слова "ДОЛЖЕН", "НЕ ДОЛЖЕН", "ТРЕБУЕТСЯ", "БУДЕТ", "НЕ БУДЕТ", "СЛЕДУЕТ", "НЕ СЛЕДУЕТ", "РЕКОМЕНДУЕТСЯ", "МОЖЕТ", и "ДОПОЛНИТЕЛЬНО" в этом документе должны быть истолкованы как описано в RFC 2119.

1. Обзор

Код ДОЛЖЕН следовать PSR-1.

Код ДОЛЖЕН использовать 4 пробела для отступов, не табуляцию.

НЕ ДОЛЖНО быть жесткого ограничения на длину строки; мягкое ограничение ДОЛЖНО быть 120 знаков; строкам СЛЕДУЕТ быть 80 символов или менее.

ДОЛЖНА быть одна пустая строка после объявления namespace , и ДОЛЖНА быть одна пустая строка после блока с объявлениями use .

Открывающие фигурные скобки для классов ДОЛЖНЫ быть на новой строке, и закрывающие фигурные скобки ДОЛЖНЫ быть на новой строке после тела класса.

Открывающие фигурные скобки для методов ДОЛЖНЫ быть на новой строке, и закрывающие фигурные скобки ДОЛЖНЫ быть на новой строке после тела метода.

Область видимости ДОЛЖНА быть описана у всех свойств и методов; abstract и final ДОЛЖНЫ быть описаны перед областью видимости; static ДОЛЖНО быть описано после области видимости.

Ключевые слова управляющих конструкций ДОЛЖНЫ иметь один пробел после себя; вызовы методов и функции НЕ ДОЛЖНЫ.

Открывающие фигурные скобки для управляющих конструкций ДОЛЖНЫ быть на той же строке, а закрывающие фигурные скобки ДОЛЖНЫ быть на новой строке после тела конструкции.

Открывающие круглые скобки для управляющих конструкций НЕ ДОЛЖНЫ иметь пробел после себя, а закрывающие круглые скобки для управляющих конструкций НЕ ДОЛЖНЫ иметь пробел перед собой.

1.1. Пример

Этот пример как краткий обзор включает в себя некоторые из ниже указанных правил:

2. Общее

2.1 Основной стандарт написания кода

Код ДОЛЖЕН следовать всем правилам изложенным в PSR-1.

2.2 Файлы

Все PHP файлы ДОЛЖНЫ использовать переводы строк Unix LF (linefeed).

Все PHP файлы ДОЛЖНЫ оканчиваться одной пустой строкой.

Закрывающий ?> тег ДОЛЖЕН быть исключен из файлов содержащих только PHP.

2.3. Строки

НЕ ДОЛЖНО быть жесткого ограничения на длину строки.

Мягкое ограничение на длину строки ДОЛЖНО быть 120 знаков; автоматические проверки стиля ДОЛЖНЫ предупредить но НЕ ДОЛЖНЫ выдавать ошибку на мягкие ограничения.

Строкам НЕ СЛЕДУЕТ быть длиннее 80 знаков; более длинные строки СЛЕДУЕТ разбивать на несколько последующих строк не более чем 80 знаков в каждой.

НЕ ДОЛЖНО быть замыкающий пробелов в конце строки на не пустых строках.

Пустые строки МОГУТ быть добавлены для улучшения читабельности и указания связанных блоков кода.

НЕ ДОЛЖНО быть более одного оператора в строке.

2.4. Отступы

Код ДОЛЖЕН использовать отступ в 4 пробела, и НЕ ДОЛЖЕН использовать табуляцию для отступов.

Обратите особое внимание: Использование только пробелов, и не смешивание пробелов и табуляции, помогает избежать проблем с диффами, патчами, историей, и аннотациями. Использование пробелов также позволяет легко вставить тонко-настроенный суб-отступ для межстрочного выравнивания.

2.5. Ключевые слова и True/False/Null

PHP Ключевые слова ДОЛЖНЫ быть в нижнем регистре.

PHP константы true , false , и null ДОЛЖНЫ быть в нижнем регистре.

3. Объявление Пространства имен и Use

Если они присутствуют, то ДОЛЖНА быть одна пустая строка после объявления namespace .

Если они присутствуют, все объявления use ДОЛЖНЫ идти после объявления namespace .

ДОЛЖНО быть ключевое слово use на каждое объявление.

ДОЛЖНА быть одна пустая строка после блока use .

4. Классы, Свойства, и Методы

Термин "класс" относится ко всем классам, интерфейсам и трейтам.

4.1. Extends и Implements

Ключевые слова extends и implements ДОЛЖНЫ быть объявлены на той же строке, что и имя класса.

Открывающая фигурная скобка для класса ДОЛЖНА идти на своей собственной строке; закрывающая фигурная скобка для класса ДОЛЖНА идти на следующей строке после тела класса.

Список implements МОЖЕТ быть разделен на несколько строк, где каждая последующая строка с одним отступом. При этом первый элемент в списке ДОЛЖЕН быть на следующей строке, и ДОЛЖЕН быть только один интерфейс на строку.

4.2. Свойства

Область видимости ДОЛЖНА быть объявлена на все свойства.

Ключевое слово var НЕ ДОЛЖНО быть использовано для объявления свойства.

НЕ ДОЛЖНО быть более одного свойства объявленного на оператор.

Имена свойств НЕ СЛЕДУЕТ делать с подчеркиванием в качестве приставки для обозначения области видимости protected или private.

Объявление свойства выглядит следующим образом.

4.3. Методы

Область видимости ДОЛЖНА быть объявлена на все методы.

Имена методов НЕ СЛЕДУЕТ делать с подчеркиванием в качестве приставки для обозначения области видимости protected или private.

Имена методов НЕ ДОЛЖНЫ быть объявлены с пробелом после имени метода. Открывающая фигурная скобка ДОЛЖНА идти на своей собственной строке, а закрывающая фигурная скобка ДОЛЖНА быть на следующей строке после тела метода. НЕ ДОЛЖНО быть пробела после открытия круглой скобки, и НЕ ДОЛЖНО быть пробела перед закрывающей круглой скобкой.

Объявление метода выглядит следующим образом. Обратите внимание на размещение круглых скобок, запятых, пробелов и фигурных скобок:

4.4. Аргументы Метода

В списке аргументов, НЕ ДОЛЖНО быть пробела перед каждой запятой, и ДОЛЖЕН быть один пробел после каждой запятой.

Аргументы Метода со значениями по умолчанию должны идти в конце списка аргументов.

Список аргументов МОЖЕТ быть разделен на несколько строк, где каждая последующая строка с одним отступом. При этом первый элемент в списке ДОЛЖЕН быть на следующей строке, и ДОЛЖЕН быть только один аргумент на строку.

Когда список аргументов разделен на несколько строк, закрывающая круглая скобка и открывающая фигурная скобка ДОЛЖНЫ быть установлены вместе на их собственную строку с одним пробелом между ними.

4.5. abstract , final , и static

Если они присутствуют, то abstract и final ДОЛЖНЫ предшествовать перед объявлением области видимости.

Если присутствует объявление static , то оно ДОЛЖНО идти после объявления области видимости.

4.6. Вызовы Метода и Функции

При выполнении вызова метода или функции, НЕ ДОЛЖНО быть пробела между именем метода или функции и открывающей круглой скобкой, НЕ ДОЛЖНО быть пробела после открытия круглой скобки, а также НЕ ДОЛЖНО быть пробела перед закрывающей круглой скобкой. В списке аргументов, НЕ ДОЛЖНО быть пробела перед каждой запятой, и ДОЛЖЕН быть один пробел после каждой запятой.

Списки аргументов МОГУТ быть разделены на несколько строк, где каждая последующая строка с одним отступом. При этом первый элемент в списке ДОЛЖЕН быть на следующей строке, и ДОЛЖЕН быть только один аргумент на строку.

5. Управляющие конструкции

Общие правила стиля для управляющих конструкций следующие:

  • ДОЛЖЕН быть один пробел после ключевого слова управляющей конструкции
  • НЕ ДОЛЖНО быть пробела после открывающих круглых скобок
  • НЕ ДОЛЖНО быть пробела перед закрывающими круглыми скобками
  • ДОЛЖЕН быть один пробел между закрывающей круглой скобкой и открывающей фигурной скобкой
  • Тело конструкции должно быть с одним отступом
  • Закрывающая фигурная скобка ДОЛЖНА быть на следующей строке после тела управляющей конструкции

Тело каждой конструкции ДОЛЖНО быть заключено в фигурные скобки. Это стандартизирует вид конструкций, и уменьшает вероятность внесения ошибок при добавлении новых строк к телу управляющей конструкции.

5.1. if , elseif , else

Оператор if выглядит следующим образом. Обратите внимание на размещение круглых скобок, пробелов и фигурных скобок; и что else и elseif находятся на одной линии, как и закрывающая фигурная скобка тела оператора.

Ключевое слово elseif СЛЕДУЕТ использовать вместо else if так что все управляющие ключевые слова выглядят как единые слова.

5.2. switch , case

Конструкция switch выглядит следующим образом. Обратите внимание на размещение круглых скобок, пробелов и фигурных скобок. Оператор case ДОЛЖЕН быть с одним отступом от switch , а ключевое слово break (или другое завершающее ключевое слово) ДОЛЖНО быть с таким же отступом как тело оператора case . ДОЛЖЕН быть комментарий, такой как // no break когда есть преднамеренное падение в не-пустое тело оператора case .

5.3. while , do while

Оператор while выглядит следующим образом. Обратите внимание на размещение круглых скобок, пробелов и фигурных скобок.

Кроме того, оператор do while выглядит следующим образом. Обратите внимание на размещение круглых скобок, пробелов и фигурных скобок.

5.4. for

Оператор for выглядит следующим образом. Обратите внимание на размещение круглых скобок, пробелов и фигурных скобок.

5.5. foreach

Оператор foreach выглядит следующим образом. Обратите внимание на размещение круглых скобок, пробелов и фигурных скобок.

5.6. try , catch

Блок try catch выглядит следующим образом. Обратите внимание на размещение круглых скобок, пробелов и фигурных скобок.

6. Замыкания

Замыкания ДОЛЖНЫ быть объявлены с пробелом после ключевого слова function , и пробелом перед и после ключевого слова use .

Открывающая фигурная скобка ДОЛЖНА идти на той же строке, а закрывающая фигурная скобка ДОЛЖНА идти на следующей строке после тела функции.

НЕ ДОЛЖНО быть пробела после открывающей круглой скобки списка аргументов или списка переменных, и НЕ ДОЛЖНО быть пробела перед закрывающей круглой скобкой списка аргументов или списка переменных.

В списке аргументов и списке переменных НЕ ДОЛЖНО быть пробела перед каждой запятой, и ДОЛЖЕН быть один пробел после каждой запятой.

Аргументы замыкания со значениями по умолчанию должны идти в конце списка аргументов.

Объявление замыкания выглядит следующим образом. Обратите внимание на размещение круглых скобок, запятых, пробелов и фигурных скобок:

Список аргументов и список переменных МОЖЕТ быть разделен на несколько строк, где каждая последующая строка с одним отступом. При этом первый элемент в списке ДОЛЖЕН быть на следующей строке, и ДОЛЖЕН быть только один аргумент или переменная на строку.

Когда конечный список (или аргументов или переменных) разделен на несколько строк, закрывающая круглая скобка и открывающая фигурная скобка ДОЛЖНЫ быть установлены вместе на их собственную строку с одним пробелом между ними.

Ниже приведены примеры замыканий с и без списка аргументов и списка переменных разбитого на несколько строк.

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

7. Заключение

Есть много элементов оформления и практик умышленно опущенных в этом руководстве. Они включают, но не ограничиваются:

Объявление глобальных переменных и глобальных констант

Операторы и присваивания

Комментарии и блоки документации

Приставки и окончания имен классов

Будущее рекомендации МОГУТ пересмотреть и расширить это руководство для решения тех или иных элементов оформления и практик.

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

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



Трезвый :
10 лет, 11 месяцев, 7 дней

Цитата
Ну да, но я имею в виду, есть ли именно php способ, без html.

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

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

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

user posted image



Цитата
есть какие то более корректные альтернативы для отступов в php коде

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

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

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

Как сделать отступ в коде HTML или PHP в редакторе Notepad ++?

Как сделать отступ в коде HTML или PHP в редакторе блокнота ++, чтобы лучше организовать свой код?

4 ответа

Если вам нужно автоматическое форматирование, посмотрите SourceFormatX, который является платным плагином для Notepad ++. .

Выделите часть кода или любой текст, а затем нажмите вкладку , это приведет к отступу всех выбранных строк. Чтобы убрать зубы, нажмите shift + tab .

Если вам нужен плагин для форматирования вашего HTML, непонятно, хотите ли вы только табуляцию, но, исходя из здравого смысла, я полагаю, вы ищете программное обеспечение, чтобы изменить код. Плагин Tidy2 есть в:

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

В Notepad ++ (и во многих других редакторах кода) вы можете выбрать несколько строк кода и нажать Tab, чтобы сделать отступ для всего выделения (или Shift + Tab, чтобы превзойти его). Это должно помочь сохранить ваш код в чистоте.

Также следует отметить, что Notepad ++ может сворачивать блоки за вас. Рядом с номерами строк вы должны увидеть дерево с полями [-] . Вы можете щелкнуть по ним, чтобы свернуть блок, который они маркируют, что позволит вам лучше рассмотреть свой код.

vedro-compota

На основе стандарта PSR-2 (где и можно почитать о подробностях).

Отступы

Внутри каждого блока следует отступать на "1 таб", например:

Фигурные скобки вокруг "блоков" - тел управляющих конструкций

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

-- то есть синтаксис языка программирования позволяет php позволяет так писать, но стандарт PSR-2 требует, чтобы:

Тело каждой управляющей конструкции ДОЛЖНО быть заключено в фигурные скобки. Это позволяет стандартизировать внешний вид управляющих конструкций с снизить риск возникновения ошибок при добавлении новых строк в тело конструкции.

А значит даже для единственного действия в блоке необходимо использовать фигурные скобки:

Пробелы и их соседи

Функции

После имени функции перед скобками пробел не ставим (также как не ставим после открывающей и перед закрывающей скобками):

Аналогично и при вызове функции:

Массивы

После имени массива перед квадратной скобкой пробел не нужен:

Операторы

Вокруг операторов пробелы ставим (а перед точкой с запятой нет):

После запятой пробел ставим, а перед - нет (с точкой же - как с обычным оператором):

С другой стороны с запятой, когда речь идёт о повторном вызове операции echo, тоже можно работать как с обычным оператором (на ваш выбор):

Но (!) при перечислении аргументов функции -- строго по правилу:

Фигурные скобки для разных блоков

Для блоков функций и классов открывающая фигурная скобка ставится на новой строке:

А для всех остальных блоков на той же строке что и оператор блока, например -- для цикла while:

Именование переменных

Именование переменных не относится к PSR-2, но всё же авторы этих строк рекомендуют следующее соглашение по именованию.

При echo текст (textarea) выводится без отступов (переносов на др. строку), в самом же phpmyadmin отступы есть. Как именно прописать вывод текста в textarea с отступами?


1 ответ 1

Текст в виде html? Или просто текст? Вероятней всего по описанию это просто текст. Значит нужно заменить переносы строки на тег
. Сделать это можно с помощью функции nl2br();

Всё ещё ищете ответ? Посмотрите другие вопросы с метками php mysql или задайте свой вопрос.

Похожие

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

дизайн сайта / логотип © 2022 Stack Exchange Inc; материалы пользователей предоставляются на условиях лицензии cc by-sa. rev 2022.1.24.41249

Читайте также: