2010-09-22 36 views
2

我有一个verrrrrrrry长base64编码的字符串,它显示在一个textarea。问题是这个字符串没有任何空格或回车符,所以它用一个难看的水平滚动条显示在一行上。PHP的 - 添加/删除回车到基地64编码字符串

我可以在base64_encode()之后和输出到textarea之前手动添加回车函数,然后在从textarea中检索此字符串(解码之前)后删除这些CR?

回答

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的值,做任何特别的事情。

+0

感谢,我结束了使用chunk_split:D – Alex 2010-09-22 21:43:51

0

这可以通过PHP函数wordwrap完成。

2

当然可以。空白将被忽略:

<?php 

echo base64_encode('Lorem Ipsump'); // TG9yZW0gSXBzdW1w 

echo base64_decode('TG9 yZW0gS  XBz dW1w'); // Lorem Ipsump 

?> 
2
base64_decode(wordwrap(base64_encode('very ... long'), 80, "\n", true)) == 'very ... long' 
1

或者你可以简单地使用HTML属性wrap做纯HTML和旁路任何PHP实现...

<textarea name="foo" wrap="soft"><?php echo $encodedString; ?></textarea> 
+0

但它在Opera中不起作用... – Alex 2010-09-23 09:47:40