如何在php中制作字符串数组?

How to make a string of an string array in php?

我面临以下问题。 有一个包含多个字符串的数组。我们想将彼此附加在一起。内爆功能似乎就是解决方案。

数组中的详细数据如下:

0   -----BEGIN ENCRYPTED PRIVATE KEY-----\n 
1   MIICxjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQIR9as3yoyQisCAggA\n  
2   MBQGCCqGSIb3DQMHBAjr2e4eD62llQSCAoDOrZP66BNtAZNBhoyRRzPOYOXhBuG4\n  
3   ah/505qbWe+SlgSnp1GYS+mgrbMc6OCv6O+gUBMzX/oVHhZeE08CQI/a5V4nDyns\n  
4   I+v8c9nYdEPYVSpPQHSwYeA8zQErqBPkzUpG2PCrCSMixC0hfUK+2z8Q1C6rTMnQ\n  
5   JYQk7JPo+nNug+xEEETWt02g9vypo2F8NKcQQ3oSKdxmuGYzbIRFMMF9CYb5ruB2\n  
6   QcWGbi1Bb+28EozEv8sABOGfOF7SVC1o4IY/n0e/QPL67uPUmdJEi5PfDkoQpmYq\n  
7   G9wBEHpMr/XtQcYhHILFWI5a8bPGb/IOuNXUrYURVG6eIU/UJpyJAgoD7lHzKvB5\n  
8   n8Sya94Mbdt21oPRJOv8zcgnd4L9wcY9FK3kkWoxM1oFw4Y+lxrcIBKzy2dZF5uc\n  
9   8kiCM/25jbUCvKfvuEa8SiAZj7v9BudNwAspqFae/XMMoj5RGzXElEN/A28Je+vZ\n  
10  mfMiA2nDtsBXfxDtdxnRchAG2c35wau/HxLO427CcI1CoRyDtUnNPEUmsgIY6cMW\n  
11  tcG4mycApdfnSIwgvWpsj/hyEOICDR/q7+APu32Dc4jf6/r6gV0ItgdiNU4wXaNy\n  
12  HPjreeL6g/ndfd6LwIyIBdJp4jhvcUWgEGDXUBfkhQJVx+8xZJAYw+sfYXQiFuZd\n  
13  fyYv0pOR8F7FIdNC32zIFQpYdZ/SPROTY0FSNGlCUc1L0HX44E9T8bG9F+Lm9jpD\n  
14  1ME4SG+XkF9QBAuDGTIVk/qQCK1fIlyrO4t/6hCu9z1+7ZeXxqi2D/D8LOItzTgs\n  
15  W2F8oaOxOv5q5d9X/Bneb+8FpNWdACvmW9NtVLaBjI0VO3Ew+xHj8tyd\n  
16  -----END ENCRYPTED PRIVATE KEY-----\n   

我希望的结果是这样的:

-----BEGIN ENCRYPTED PRIVATE KEY-----\nMIICxjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQIR9as3yoyQisCAggA\nMBQGCCqGSIb3DQMHBAjr2e4eD62llQSCAoDOrZP66BNtAZNBhoyRRzPOYOXhBuG4\nah/505qbWe+SlgSnp1GYS+mgrbMc6OCv6O+gUBMzX/oVHhZeE08CQI/a5V4nDyns\nI+v8c9nYdEPYVSpPQHSwYeA8zQErqBPkzUpG2PCrCSMixC0hfUK+2z8Q1C6rTMnQ\nJYQk7JPo+nNug+xEEETWt02g9vypo2F8NKcQQ3oSKdxmuGYzbIRFMMF9CYb5ruB2\nQcWGbi1Bb+28EozEv8sABOGfOF7SVC1o4IY/n0e/QPL67uPUmdJEi5PfDkoQpmYq\nG9wBEHpMr/XtQcYhHILFWI5a8bPGb/IOuNXUrYURVG6eIU/UJpyJAgoD7lHzKvB5\nn8Sya94Mbdt21oPRJOv8zcgnd4L9wcY9FK3kkWoxM1oFw4Y+lxrcIBKzy2dZF5uc\n8kiCM/25jbUCvKfvuEa8SiAZj7v9BudNwAspqFae/XMMoj5RGzXElEN/A28Je+vZ\nmfMiA2nDtsBXfxDtdxnRchAG2c35wau/HxLO427CcI1CoRyDtUnNPEUmsgIY6cMW\ntcG4mycApdfnSIwgvWpsj/hyEOICDR/q7+APu32Dc4jf6/r6gV0ItgdiNU4wXaNy\nHPjreeL6g/ndfd6LwIyIBdJp4jhvcUWgEGDXUBfkhQJVx+8xZJAYw+sfYXQiFuZd\nfyYv0pOR8F7FIdNC32zIFQpYdZ/SPROTY0FSNGlCUc1L0HX44E9T8bG9F+Lm9jpD\n1ME4SG+XkF9QBAuDGTIVk/qQCK1fIlyrO4t/6hCu9z1+7ZeXxqi2D/D8LOItzTgs\nW2F8oaOxOv5q5d9X/Bneb+8FpNWdACvmW9NtVLaBjI0VO3Ew+xHj8tyd\n-----END ENCRYPTED PRIVATE KEY-----

我的代码看起来像这样。

$arr = array();
...
$arr = $dataweloaded;
$string = implode($arr);

现在真正有趣的事情..

我的真实输出和上面描述的不一样。 它仅包含 1024 个字节。

-----BEGIN ENCRYPTED PRIVATE KEY-----\nMIICxjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQIR9as3yoyQisCAggA\nMBQGCCqGSIb3DQMHBAjr2e4eD62llQSCAoDOrZP66BNtAZNBhoyRRzPOYOXhBuG4\nah/505qbWe+SlgSnp1GYS+mgrbMc6OCv6O+gUBMzX/oVHhZeE08CQI/a5V4nDyns\nI+v8c9nYdEPYVSpPQHSwYeA8zQErqBPkzUpG2PCrCSMixC0hfUK+2z8Q1C6rTMnQ\nJYQk7JPo+nNug+xEEETWt02g9vypo2F8NKcQQ3oSKdxmuGYzbIRFMMF9CYb5ruB2\nQcWGbi1Bb+28EozEv8sABOGfOF7SVC1o4IY/n0e/QPL67uPUmdJEi5PfDkoQpmYq\nG9wBEHpMr/XtQcYhHILFWI5a8bPGb/IOuNXUrYURVG6eIU/UJpyJAgoD7lHzKvB5\nn8Sya94Mbdt21oPRJOv8zcgnd4L9wcY9FK3kkWoxM1oFw4Y+lxrcIBKzy2dZF5uc\n8kiCM/25jbUCvKfvuEa8SiAZj7v9BudNwAspqFae/XMMoj5RGzXElEN/A28Je+vZ\nmfMiA2nDtsBXfxDtdxnRchAG2c35wau/HxLO427CcI1CoRyDtUnNPEUmsgIY6cMW\ntcG4mycApdfnSIwgvWpsj/hyEOICDR/q7+APu32Dc4jf6/r6gV0ItgdiNU4wXaNy\nHPjreeL6g/ndfd6LwIyIBdJp4jhvcUWgEGDXUBfkhQJVx+8xZJAYw+sfYXQiFuZd\nfyYv0pOR8F7FIdNC32zIFQpYdZ/SPROTY0FSNGlCUc1L0HX44E9T8bG9F+Lm9jpD\n1ME4SG+XkF9QBAuDGTIVk/qQCK1fIlyrO4t/6hCu9z1+7ZeXxqi2D/D8LOItzTgs\nW2F8oaOxOv5q5d9X/Bneb+8FpNWdACvmW9NtVLaBjI0VO3Ew+xHj8tyd\n-----END ENCRYPTED     

如果你比较那些字符串,你应该意识到少了几个字节! 当前输出应该附加 PRIVATE KEY-----\n 因此这是数组最后一个元素的一部分,这将导致 -----END ENCRYPTED PRIVATE KEY-----.

其实我刚刚达到-----END ENCRYPTED.

我考虑过堆内存限制。 php.ini sais 256Mb 已保留。 我还读到变量可以达到 2Gb 大。 所以这不应该是这里的问题。

implode() 也应该没问题,因为 file_get_contents() 等其他函数也会 return 相同的错误结果。

逐行阅读代码如下:

function readline($file){
    $string = null;
    $handle = fopen($file, "r");
    if ($handle) {
        while (($line = fgets($handle)) !== false) {
            $string .= $line;
        }
        fclose($handle);
    }
return $string;
}

找错了很久。跟踪调试器内部的调用甚至可以在每种情况下识别 1024 字节的固定大小,无论我使用什么方法。

你遇到过这样的反常行为吗? 我希望这不是太容易,我只是遗漏了一些重要的东西。

生成的字符串应包含与数组元素中完全相同的数据。

我使用的调试器实用程序似乎存在严重问题。 这是一张显示现象的图像。我高度假设在调试模式下变量内容查看器中只会显示 1024 个字节。 代码很好,php 不是错误 =)

之前没有真正的问题。