我有一个verrrrrrrrry long base64编码的字符串,它显示在textarea中。问题是这个字符串没有任何空格或回车符,因此它会显示在一条带有丑陋水平滚动条的行上。
我可以在base64_encode()之后和输出到textarea之前手动添加回车符,然后在从textarea检索此字符串之后删除这些CR(在解码之前)吗?
答案 0 :(得分:5)
您可以使用chunk_split
将字符串拆分为特定长度的块,然后使用您想要的字符或字符串重新加入这些块:
$str = base64_encode($whatever);
echo '<textarea name="textarea">'
. chunk_split($str, 30, "\n") // put a newline every 30 characters
. '</textarea>';
由于base64_decode
忽略空格,因此一旦检索到textarea值,就不需要做任何特殊的事情。
答案 1 :(得分:3)
当然可以。空格被忽略:
<?php
echo base64_encode('Lorem Ipsump'); // TG9yZW0gSXBzdW1w
echo base64_decode('TG9 yZW0gS XBz dW1w'); // Lorem Ipsump
?>
答案 2 :(得分:3)
base64_decode(wordwrap(base64_encode('very ... long'), 80, "\n", true)) == 'very ... long'
答案 3 :(得分:1)
或者你可以简单地使用HTML属性wrap
在纯HTML中执行它并绕过任何PHP实现......
<textarea name="foo" wrap="soft"><?php echo $encodedString; ?></textarea>
答案 4 :(得分:0)
这可以通过PHP函数wordwrap完成。