我使用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标签的那些空格呢?
答案 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)
只需对文本区域使用修剪功能。你会得到你想要的东西