【问题标题】:PHP - add/remove carriage returns to a base 64 encoded stringPHP - 添加/删除回车返回到 base 64 编码的字符串
【发布时间】:2011-04-15 23:35:38
【问题描述】:

我有一个显示在文本区域中的 verrrrrrrry 长 base64 编码字符串。问题是这个字符串没有任何空格或回车,所以它显示在一行中,带有一个丑陋的水平滚动条。

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

【问题讨论】:

    标签: php string encoding textarea base64


    【解决方案1】:

    您可以使用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 值,您就无需执行任何特殊操作。

    【讨论】:

      【解决方案2】:

      当然。空白被忽略:

      <?php
      
      echo base64_encode('Lorem Ipsump'); // TG9yZW0gSXBzdW1w
      
      echo base64_decode('TG9 yZW0gS      XBz dW1w'); // Lorem Ipsump
      
      ?>
      

      【讨论】:

        【解决方案3】:
        base64_decode(wordwrap(base64_encode('very ... long'), 80, "\n", true)) == 'very ... long'
        

        【讨论】:

          【解决方案4】:

          或者您可以简单地使用 HTML 属性 wrap 在纯 HTML 中执行此操作并绕过任何 PHP 实现...

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

          【讨论】:

            【解决方案5】:

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

            【讨论】:

              猜你喜欢
              • 2012-04-10
              • 2023-03-26
              • 2011-06-21
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2010-11-23
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多