PHP:如何拉取base64编码的消息?

时间:2017-02-07 11:21:28

标签: php encoding base64

我有一些基本的原始base64编码电子邮件,我想解码并转换为PDF格式。我遇到的问题是$str变量。这行代码是我所有电子邮件中的前76个字符,但我无法将其作为扫描/收集/收集其余加密代码的起始基础。

所以基本上$ str是起点,但是后来有1000多个base64加密编码行,我想说,如果你发现了这个,那么就开始拉动所有代码的REST。我查看了strpos和substr,但它们使用直接数值。是否可以使用字符作为起始位置?

总结一下:我基本上想说如果你在文档中找到$ str,那么从你找到它的地方开始复制剩下的代码。

$str = "JVBERi0xLjcKJeTjz9IKNCAwIG9iago8PC9MZW5ndGggMyAwIFIvRmlsdGVy";

$pdf_base64 = "base64pdf.txt";
//Get File content from txt file
$pdf_base64_handler = fopen($pdf_base64,'r');
$pdf_content = fread ($pdf_base64_handler,filesize($pdf_base64));

if (strpos($pdf_content, $str) !== false) {
    echo 'true';
}


fclose ($pdf_base64_handler);
//Decode pdf content
$pdf_decoded = base64_decode ($pdf_content);
//Write data back to pdf file
$pdf = fopen ('test.pdf','w');
fwrite ($pdf, $pdf_decoded);
//close output file
fclose ($pdf);
echo 'Done';

1 个答案:

答案 0 :(得分:2)

以下内容将返回$str $pdf_content后的所有内容,包括$str

if (strpos($pdf_content, $str) !== false) {
   $foundContent = substr($pdf_content, strpos($pdf_content, $str));
}

strpos将返回大海捞针($str)内针头($pdf_content)的数值,然后可以在substr中拉出