我有
$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"
似乎没有任何区别。
答案 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()
?