Php整洁和文本区域

时间:2011-10-04 04:44:39

标签: php textarea tidy

我使用tidy来清理和格式化twig template engine生成的HTML输出。

我使用以下配置进行整理:

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

除非我们到达textareas,否则一切都很顺利。

这是未清理的片段:

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

虽然格式非常混乱,但在文本区域输出正确的值:'sdfds',之前或之后没有任何空格。

这是使用整洁后的清洁格式:

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

可以看出,标记现在更加整洁,但是整洁在'sdfds'之后引入了一个换行符,这意味着当在浏览器中查看时,光标现在指向'sdfds'之后的行。

这很烦人,我不知道如何解决这个问题。我仍然希望清理textarea标签,但我希望它的格式如下:

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

之前是否有人处理此问题?如果是这样,我怎么能不整理textarea标签的那些空格呢?

4 个答案:

答案 0 :(得分:0)

如果使用php输出sdfds,则需要添加另一个配置选项。

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

仅包含对html的担忧,任何php语句都被视为新行。有关配置选项的更多信息,您可以访问:http://tidy.sourceforge.net/docs/quickref.html

答案 1 :(得分:0)

当你使用indent =&gt;真的,你会把整洁的东西弄得乱七八糟。它变得整洁,因为即使textareas值也是缩进的。如果你想要你的textareas看起来正确你可以设置indent =&gt;假。这将整理您的HTML,但在应用整洁后也会使您的textarea具有相同的值。我已经看到有一些补丁可以解决问题,但是你应该自己编译整理。你也可以用PHP做到这一点但是你整理整齐。

答案 2 :(得分:0)

Tidy有时可能会变得“混乱”,并且需要使用rexep进一步细化,这是一种将光标放在最终输出中的同一行的解决方法,因此可用性不受影响。只需运行整洁的html槽:

$subject = preg_replace('%(\r\n|\n)(?=</textarea>)%sim', '', $subject);

答案 3 :(得分:-1)

只需对文本区域使用修剪功能。你会得到你想要的东西