[problems encountered]
try to use PHP"s base64_decode function to decode the content of a message that is encoded with Base64, but find that some messages return false. According to my test, it seems that the parts containing non-Base64 codes can be decoded normally after they are deleted, but according to the documentation--
string base64_decode ( string $data [, bool $strict = false ] )
when strict is set to TRUE, FALSE is returned once the data entered exceeds the base64 alphabet. Otherwise, will invalid characters be silently discarded?
what should I do if I want to decode messages with non-encoded content?
[related codes]
example of the content of the message to be decoded. only those "- = _ Part_." that are deleted from the beginning and tail. To decode successfully, otherwise false is returned.
<?php
$str="------=_Part_52_1608986047.1312859369078 Content-Type: multipart/alternative; boundary="----=_Part_53_1114408905.1312859369078" ------=_Part_53_1114408905.1312859369078 Content-Type: text/plain; charset="gb18030" Content-Transfer-Encoding: base64 1eLKx9K7t+JIVE1MuPHKvdPKvP6jrMfrx9C7u7W9SFRNTMrTzbw ------=_Part_53_1114408905.1312859369078 Content-Type: text/html;charset=UTF-8 Content-Transfer-Encoding: base64 PG1ldGEgY2hhcnNldD0iVVRGLTgiIC8+PHRhYmxlIGFsaWduPSJjZW50ZXIiIHN0eWxlPSJmb250 LWZhbWlseTpNaWNyb3NvZnQgWWFIZWksU2ltc3VuO3dpZHRoOjc1MHB4O3RhYmxlLWxheW91dDpm aXhlZDsiICBiZ2NvbG9yPSIjZmZmZmZmIiBjZWxscGFkZGluZz0iMCIgY2VsbHNwYWNpbmc9IjAi Pjx0Ym9keT48dHI+PHRkIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij7lhaXpl6gyOTwvdGQ+PC90cj4g PHRyPjx0ZD48dGFibGUgc3R5bGU9IndpZHRoOjc1MHB4OyIgYm9yZGVyPSIwIiBjZWxscGFkZGlu Zz0iMCIgY2VsbHNwYWNpbmc9IjAiPjx0cj48dGQgc3R5bGU9IndpZHRoOjc1MHB4O2hlaWdodDox MDBweDtmb250LWZhbWlseTpNaWNyb3NvZnQgWWFIZWksU2ltc3VuO2JhY2tncm91bmQ6IzE3MjAz ZjsiPjxpbWcgc3JjPSJodHRwOi8vbWltZy4xMjcubmV0L2h6L3VwbG9hZGVyLzIwMTgxMDI3LzE1 NDA2MDYzOTg2Njk3OTk0LmpwZWciIHN0eWxlPSJkaXNwbGF5OmJsb2NrO2JvcmRlcjowOyIvPjwv dGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj4gIDx0cj48dGQ+PHRhYmxlIHN0eWxlPSJ3aWR0aDo3 NTBweDsiIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIwIj48dHI+PHRk IHN0eWxlPSJ3aWR0aDo3NTBweDtoZWlnaHQ6MTAwcHg7Zm9udC1mYW1pbHk6TWljcm9zb2Z0IFlh SGVpLFNpbXN1bjtiYWNrZ3JvdW5kOiMxNzFmM2Y7Ij48aW1nIHNyYz0iaHR0cDovL21pbWcuMTI3 Lm5ldC9oei91cGxvYWRlci8yMDE4MTAyNy8xNTQwNjA2Mzk4ODcyNzk5NS5qcGVnIiBzdHlsZT0i ZGlzcGxheTpibG9jaztib3JkZXI6MDsiLz48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+ICA8 dHI+PHRkPjx0YWJsZSBzdHlsZT0id2lkdGg6NzUwcHg7IiBib3JkZXI9IjAiIGNlbGxwYWRkaW5n PSIwIiBjZWxsc3BhY2luZz0iMCI+PHRyPjx0ZCBzdHlsZT0id2lkdGg6NzUwcHg7aGVpZ2h0OjEw MHB4O2ZvbnQtZmFtaWx5Ok1pY3Jvc29mdCBZYUhlaSxTaW1zdW47YmFja2dyb3VuZDojMTgyNjQw OyI+PGltZyBzcmM9Imh0dHA6Ly9taW1nLjEyNy5uZXQvaHovdXBsb2FkZXIvMjAxODEwMjcvMTU0 MDYwNjM5OTEwODc5OTYuanBlZyIgc3R5bGU9ImRpc3BsYXk6YmxvY2s7Ym9yZGVyOjA7Ii8+PC90 ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPiAgPHRyPjx0ZD48dGFibGUgc3R5bGU9IndpZHRoOjc1 MHB4OyIgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMCIgY2VsbHNwYWNpbmc9IjAiPjx0cj48dGQg c3R5bGU9IndpZHRoOjc1MHB4O2hlaWdodDoxMDBweDtmb250LWZhbWlseTpNaWNyb3NvZnQgWWFI ZWksU2ltc3VuO2JhY2tncm91bmQ6IzEyMjY0MDsiPjxpbWcgc3JjPSJodHRwOi8vbWltZy4xMjcu bmV0L2h6L3VwbG9hZGVyLzIwMTgxMDI3LzE1NDA2MDYzOTkzNDk3OTk3LmpwZWciIHN0eWxlPSJk aXNwbGF5OmJsb2NrO2JvcmRlcjowOyIvPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj4gIDx0 cj48dGQ+PHRhYmxlIHN0eWxlPSJ3aWR0aDo3NTBweDsiIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9 IjAiIGNlbGxzcGFjaW5nPSIwIj48dHI+PHRkIHN0eWxlPSJ3aWR0aDo3NTBweDtoZWlnaHQ6MTAw cHg7Zm9udC1mYW1pbHk6TWljcm9zb2Z0IFlhSGVpLFNpbXN1bjtiYWNrZ3JvdW5kOiMxMDJhNDA7 Ij48aW1nIHNyYz0iaHR0cDovL21pbWcuMTI3Lm5ldC9oei91cGxvYWRlci8yMDE4MTAyNy8xNTQw NjA2Mzk5NTU2Nzk5OC5qcGVnIiBzdHlsZT0iZGlzcGxheTpibG9jaztib3JkZXI6MDsiLz48L3Rk PjwvdHI+PC90YWJsZT48L3RkPjwvdHI+ICA8dHI+PHRkPjx0YWJsZSBzdHlsZT0id2lkdGg6NzUw cHg7IiBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSIwIiBjZWxsc3BhY2luZz0iMCI+PHRyPjx0ZCBz dHlsZT0id2lkdGg6NzUwcHg7aGVpZ2h0OjEwMHB4O2ZvbnQtZmFtaWx5Ok1pY3Jvc29mdCBZYUhl aSxTaW1zdW47YmFja2dyb3VuZDojMWQxOTNmOyI+PGltZyBzcmM9Imh0dHA6Ly9taW1nLjEyNy5u ZXQvaHovdXBsb2FkZXIvMjAxODEwMjcvMTU0MDYwNjM5OTc5Nzc5OTkuanBlZyIgc3R5bGU9ImRp c3BsYXk6YmxvY2s7Ym9yZGVyOjA7Ii8+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPiAgPHRy Pjx0ZD48dGFibGUgc3R5bGU9IndpZHRoOjc1MHB4OyIgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0i MCIgY2VsbHNwYWNpbmc9IjAiPjx0cj48dGQgc3R5bGU9IndpZHRoOjc1MHB4O2hlaWdodDoxMDBw eDtmb250LWZhbWlseTpNaWNyb3NvZnQgWWFIZWksU2ltc3VuO2JhY2tncm91bmQ6IzFkMTkzZjsi PjxpbWcgc3JjPSJodHRwOi8vbWltZy4xMjcubmV0L2h6L3VwbG9hZGVyLzIwMTgxMDI3LzE1NDA2 MDY0MDAwMDg4MDAwLmpwZWciIHN0eWxlPSJkaXNwbGF5OmJsb2NrO2JvcmRlcjowOyIvPjwvdGQ+ PC90cj48L3RhYmxlPjwvdGQ+PC90cj4gIDx0cj48dGQ+PHRhYmxlIHN0eWxlPSJ3aWR0aDo3NTBw eDsiIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIwIj48dHI+PHRkIHN0 eWxlPSJ3aWR0aDo3NTBweDtoZWlnaHQ6MTAwcHg7Zm9udC1mYW1pbHk6TWljcm9zb2Z0IFlhSGVp LFNpbXN1bjtiYWNrZ3JvdW5kOiMxZDE5M2Y7Ij48aW1nIHNyYz0iaHR0cDovL21pbWcuMTI3Lm5l dC9oei91cGxvYWRlci8yMDE4MTAyNy8xNTQwNjA2NDAwMjQwODAwMS5qcGVnIiBzdHlsZT0iZGlz cGxheTpibG9jaztib3JkZXI6MDsiLz48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+ICA8dHI+ PHRkPjx0YWJsZSBzdHlsZT0id2lkdGg6NzUwcHg7IiBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSIw IiBjZWxsc3BhY2luZz0iMCI+PHRyPjx0ZCBzdHlsZT0id2lkdGg6NzUwcHg7aGVpZ2h0OjEwMHB4 O2ZvbnQtZmFtaWx5Ok1pY3Jvc29mdCBZYUhlaSxTaW1zdW47YmFja2dyb3VuZDojMWQxOTNmOyI+ PGltZyBzcmM9Imh0dHA6Ly9taW1nLjEyNy5uZXQvaHovdXBsb2FkZXIvMjAxODEwMjcvMTU0MDYw NjQwMDQ0NDgwMDIuanBlZyIgc3R5bGU9ImRpc3BsYXk6YmxvY2s7Ym9yZGVyOjA7Ii8+PC90ZD48 L3RyPjwvdGFibGU+PC90ZD48L3RyPiAgPHRyPjx0ZD48dGFibGUgc3R5bGU9IndpZHRoOjc1MHB4 OyIgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMCIgY2VsbHNwYWNpbmc9IjAiPjx0cj48dGQgc3R5 bGU9IndpZHRoOjc1MHB4O2hlaWdodDoxMDBweDtmb250LWZhbWlseTpNaWNyb3NvZnQgWWFIZWks U2ltc3VuO2JhY2tncm91bmQ6IzFkMTkzZjsiPjxpbWcgc3JjPSJodHRwOi8vbWltZy4xMjcubmV0 L2h6L3VwbG9hZGVyLzIwMTgxMDI3LzE1NDA2MDY0MDA2NzY4MDAzLmpwZWciIHN0eWxlPSJkaXNw bGF5OmJsb2NrO2JvcmRlcjowOyIvPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj4gIDx0cj48 dGQ+PHRhYmxlIHN0eWxlPSJ3aWR0aDo3NTBweDsiIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjAi IGNlbGxzcGFjaW5nPSIwIj48dHI+PHRkIHN0eWxlPSJ3aWR0aDo3NTBweDtoZWlnaHQ6MTAwcHg7 Zm9udC1mYW1pbHk6TWljcm9zb2Z0IFlhSGVpLFNpbXN1bjtiYWNrZ3JvdW5kOiMxZDE5M2Y7Ij48 aW1nIHNyYz0iaHR0cDovL21pbWcuMTI3Lm5ldC9oei91cGxvYWRlci8yMDE4MTAyNy8xNTQwNjA2 NDAwOTA1ODAwNC5qcGVnIiBzdHlsZT0iZGlzcGxheTpibG9jaztib3JkZXI6MDsiLz48L3RkPjwv dHI+PC90YWJsZT48L3RkPjwvdHI+ICA8dHI+PHRkPjx0YWJsZSBzdHlsZT0id2lkdGg6NzUwcHg7 IiBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSIwIiBjZWxsc3BhY2luZz0iMCI+PHRyPjx0ZCBzdHls ZT0id2lkdGg6NzUwcHg7aGVpZ2h0OjEwMHB4O2ZvbnQtZmFtaWx5Ok1pY3Jvc29mdCBZYUhlaSxT aW1zdW47YmFja2dyb3VuZDojMWQxOTNmOyI+PGltZyBzcmM9Imh0dHA6Ly9taW1nLjEyNy5uZXQv aHovdXBsb2FkZXIvMjAxODEwMjcvMTU0MDYwNjQwMTE0MDgwMDUuanBlZyIgc3R5bGU9ImRpc3Bs YXk6YmxvY2s7Ym9yZGVyOjA7Ii8+PC90ZD48L3RyPjwvdGFibGU+PC90ZD48L3RyPiAgPHRyPjx0 ZD48dGFibGUgc3R5bGU9IndpZHRoOjc1MHB4OyIgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMCIg Y2VsbHNwYWNpbmc9IjAiPjx0cj48dGQgc3R5bGU9IndpZHRoOjc1MHB4O2hlaWdodDoxMDBweDtm b250LWZhbWlseTpNaWNyb3NvZnQgWWFIZWksU2ltc3VuO2JhY2tncm91bmQ6IzFkMTkzZjsiPjxp bWcgc3JjPSJodHRwOi8vbWltZy4xMjcubmV0L2h6L3VwbG9hZGVyLzIwMTgxMDI3LzE1NDA2MDY0 MDEzNTQ4MDA2LmpwZWciIHN0eWxlPSJkaXNwbGF5OmJsb2NrO2JvcmRlcjowOyIvPjwvdGQ+PC90 cj48L3RhYmxlPjwvdGQ+PC90cj4gIDx0cj48dGQ+PHRhYmxlIHN0eWxlPSJ3aWR0aDo3NTBweDsi IGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIwIj48dHI+PHRkIHN0eWxl PSJ3aWR0aDo3NTBweDtoZWlnaHQ6MTAwcHg7Zm9udC1mYW1pbHk6TWljcm9zb2Z0IFlhSGVpLFNp bXN1bjtiYWNrZ3JvdW5kOiMxZDE5M2Y7Ij48aW1nIHNyYz0iaHR0cDovL21pbWcuMTI3Lm5ldC9o ei91cGxvYWRlci8yMDE4MTAyNy8xNTQwNjA2NDAxNTU4ODAwNy5qcGVnIiBzdHlsZT0iZGlzcGxh eTpibG9jaztib3JkZXI6MDsiLz48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+ICA8dHI+PHRk Pjx0YWJsZSBzdHlsZT0id2lkdGg6NzUwcHg7IiBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSIwIiBj ZWxsc3BhY2luZz0iMCI+PHRyPjx0ZCBzdHlsZT0id2lkdGg6NzUwcHg7aGVpZ2h0OjEwMHB4O2Zv bnQtZmFtaWx5Ok1pY3Jvc29mdCBZYUhlaSxTaW1zdW47YmFja2dyb3VuZDojMWQxOTNmOyI+PGlt ZyBzcmM9Imh0dHA6Ly9taW1nLjEyNy5uZXQvaHovdXBsb2FkZXIvMjAxODEwMjcvMTU0MDYwNjQw MTc5MDgwMDguanBlZyIgc3R5bGU9ImRpc3BsYXk6YmxvY2s7Ym9yZGVyOjA7Ii8+PC90ZD48L3Ry PjwvdGFibGU+PC90ZD48L3RyPiAgPHRyPjx0ZD48dGFibGUgc3R5bGU9IndpZHRoOjc1MHB4OyIg Ym9yZGVyPSIwIiBjZWxscGFkZGluZz0iMCIgY2VsbHNwYWNpbmc9IjAiPjx0cj48dGQgc3R5bGU9 IndpZHRoOjc1MHB4O2hlaWdodDoxMDBweDtmb250LWZhbWlseTpNaWNyb3NvZnQgWWFIZWksU2lt c3VuO2JhY2tncm91bmQ6IzFkMTkzZjsiPjxpbWcgc3JjPSJodHRwOi8vbWltZy4xMjcubmV0L2h6 L3VwbG9hZGVyLzIwMTgxMDI3LzE1NDA2MDY0MDIwMjA4MDA5LmpwZWciIHN0eWxlPSJkaXNwbGF5 OmJsb2NrO2JvcmRlcjowOyIvPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj4gIDx0cj48dGQ+ PHRhYmxlIHN0eWxlPSJ3aWR0aDo3NTBweDsiIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjAiIGNl bGxzcGFjaW5nPSIwIj48dHI+PHRkIHN0eWxlPSJ3aWR0aDo3NTBweDtoZWlnaHQ6MTVweDtmb250 LWZhbWlseTpNaWNyb3NvZnQgWWFIZWksU2ltc3VuO2JhY2tncm91bmQ6IzFkMTkzZjsiPjxpbWcg c3JjPSJodHRwOi8vbWltZy4xMjcubmV0L2h6L3VwbG9hZGVyLzIwMTgxMDI3LzE1NDA2MDY0MDIy NTE4MDEwLmpwZWciIHN0eWxlPSJkaXNwbGF5OmJsb2NrO2JvcmRlcjowOyIvPjwvdGQ+PC90cj48 L3RhYmxlPjwvdGQ+PC90cj4gIDx0cj48dGQ+PHRhYmxlIHN0eWxlPSJ3aWR0aDo3NTBweDsiIGJv cmRlcj0iMCIgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIwIj48dHI+PC90cj48L3RhYmxl PjwvdGQ+PC90cj4gPC90Ym9keT48L3RhYmxlPjxJTUcgU1JDPSJodHRwOi8vY291bnQubWFpbC4x NjMuY29tL2JlYWNvbi9lZG0uZ2lmP25vPTYwNTY1Mzg4JmRvbWFpbj1lbWFpbCZkYXRlPTIwMTgx MDI5JnVpZD0iIHN0eWxlPSJkaXNwbGF5Om5vbmUiPjxkaXYgY2xhc3M9ImRtLXVuc3ViLWRpdiI+ PGRpdiBzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXI7cGFkZGluZy10b3A6MTVweDtmb250LXNpemU6 MTBweDtjb2xvcjojNzc3Ij7lpoLmnpzkvaDkuI3mg7Plho3mlLbliLDor6Xkuqflk4HnmoTmjqjo jZDpgq7ku7bvvIzor7fngrnlh7sgPGEgc3R5bGU9ImZvbnQtc2l6ZToxMHB4IiBocmVmPSJodHRw Oi8vZG0ubWFpbC4xNjMuY29tL2Fub255bW91cy9hZHN1YnNjcmliZS91bnN1YnNjcmliZT9kZXBJ ZD0xJnByb0lkPTEwNjAwMyZtaXRJZD02MDU2NTM4OCZzZWM9QjJkTkFCeW10WWg3UzlZa0Y2QWpl R1RqNzRqZWRTMGwiIGhpZGVmb2N1cz0idHJ1ZSI+6L+Z6YeM6YCA6K6iPC9hPjwvZGl2Pg0KPC9k aXY+DQo------=_Part_53_1114408905.1312859369078-- ------=_Part_52_1608986047.1312859369078--
";
$text=base64_decode($str);
var_dump($text);
echo $text;
?>
[attempts made]
switching to imap_base64 was also unsuccessful.
[Test Environment]
XAMPP
operating system: Windows 10 Family Chinese version 1803
Apache version: 2.4.16 (Win32)
PHP version: 5.6.12