2010-09-22 34 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