Php аккуратные и текстовые области - PullRequest
8 голосов
/ 04 октября 2011

Я использую tidy , чтобы очистить и отформатировать вывод HTML, сгенерированный механизмом веток .

Я использую следующую конфигурацию для tidy:

$config = array('indent' => TRUE, 'output-html' => TRUE, 'wrap' => 0);

Все работает хорошо и хорошо, кроме случаев, когда мы добираемся до текстовых областей.

Вот неочищенный фрагмент:

<textarea id="words"
         rows="10"       cols="50"                  >sdfds</textarea>

Хотя форматирование очень грязное,правильное значение выводится в текстовой области: 'sdfds' без пробелов до или после.

Это очищенный формат после использования tidy:

                <textarea id="words" name="words" rows="10" cols="50" title="prompt">
sdfds
</textarea>

Как видно, разметкатеперь намного лучше, но Tidy ввел перенос строки после 'sdfds', что означает, что курсор теперь указывает на строку после 'sdfds' при просмотре в браузере.

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

<textarea id="words" name="words" rows="10" cols="50" title="prompt">sdfds</textarea>

Кто-нибудь имел дело с этой проблемой раньше?Если так, как мне привести в порядок эти пробелы для тега textarea?

Ответы [ 4 ]

0 голосов
/ 06 ноября 2012

Просто используйте функцию обрезки для текстовой области. И вы получите то, что ищете

0 голосов
/ 05 октября 2011

Когда вы используете indent => true, вы получите путаницу с Tidy.Это приводит в порядок, потому что даже значение textareas с отступом.Если вы хотите, чтобы ваши текстовые поля выглядели правильно, вы можете просто установить indent => false.Это приведет в порядок ваш HTML, но также оставит текстовое поле с тем же значением после применения tidy.Я видел, что есть некоторые исправления, которые решают проблему, но тогда вы должны скомпилировать tidy самостоятельно.Вы также можете сделать это с помощью PHP, но затем вы убираете порядок.

0 голосов
/ 13 декабря 2011

Tidy может иногда быть «грязным» и требует дальнейшего уточнения с помощью rexep, вот обходной путь, который поместит курсор на ту же строку в конечном выводе, поэтому удобство использования не пострадает. Просто запустите ваш HTML-код:

$subject = preg_replace('%(\r\n|\n)(?=</textarea>)%sim', '', $subject);
0 голосов
/ 04 октября 2011

Если sdfds передается с помощью php, вам нужно будет добавить еще один параметр конфигурации.

 $config = array('indent' => TRUE, 'output-html' => TRUE, 'wrap' => 0, 'wrap-php' => 0);

Обтекание беспокоит только html, а все операторы php рассматриваются как новая строка.Для получения дополнительной информации о параметрах конфигурации вы можете посетить: http://tidy.sourceforge.net/docs/quickref.html

...