文本区域包装不起作用

时间:2009-11-15 16:56:41

标签: php html

我有

$ad_text=wordwrap(nl2br($_POST['annonsera_text']), 45, '<br />\n');

知道为什么上面会显示长字符串吗?

表格method='POST'enctype='multipart/form-data'textarea wrap='hard'

我希望显示的文本区域与用户在其中输入文本时完全相同。

更新

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\nl
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

输出:

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

在PHP中使用wordwrap函数。

我是否在HTML中设置wrap="hard"似乎没有任何区别。

3 个答案:

答案 0 :(得分:1)

可以在调试方法中找到正确的答案。而不是把它分成一行,将它们分成多行并检查输出。

echo $ad_text = $_POST['annonsera_text'];
echo $ad_text = nl2br($ad_text);
echo $ad_text = wordwrap($ad_text, 45, '<br />\n');

答案 1 :(得分:0)

在这些情况下,您应该指定wordwrap()函数的第四个参数,如果它们大于所需宽度,则指示它打破单词:

$ad_text=wordwrap(nl2br($_POST['annonsera_text']), 45, '<br />\n', true);

答案 2 :(得分:0)

输入字符串

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\nl aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

包含4个不同的字符:“a”,“\ n”,“l”和“”。

我希望nl2br()能够创建此输出

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<br />\nl aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

然后wordwrap调用使这个:

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<br<br />\n/>\nl aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

这是形式错误的HTML。在浏览器中,坏的br标签无效。并且换行符不会影响布局,因此它看起来像一个'a'字符串。我无法解释你的'l'去哪里。

wordwrap调用中,替换字符串是单引号,因此'\ n'是两个字符反斜杠和n。使用双引号将转义展开为真正的换行符:将'<br />\n'更改为"<br />\n"

您可能还想省略nl2br来电或wordwrap来电,具体取决于您的需求。

顺便说一下,您是否尝试在$cut来电中将第四个参数true设置为wordwrap()