Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
纯PHP解决方案:PDF转换为纯文本,不带exec()/system()_Php_Parsing_Pdf - Fatal编程技术网

纯PHP解决方案:PDF转换为纯文本,不带exec()/system()

纯PHP解决方案:PDF转换为纯文本,不带exec()/system(),php,parsing,pdf,Php,Parsing,Pdf,我正试图用纯PHP将PDF文件解析为纯文本(字符串),因为我无法访问exec、system或其他被我正在使用的服务器拒绝的函数 我在网上找到的函数无法解析这些PDF文件 这是我从一个echo文件中得到的内容(“file.pdf”) %PDF-1.4 5 0 obj>streamÿØÿa JFIFÿC%,ţ和')*)-0-(0%()(ÿC(((( 然后是所有的内容。 这是PDF 1.45.0 这是我用于PDF 1.2-1.3的函数(不处理这些文件): 函数反编译IPDF($pdfdata){ 如

我正试图用纯PHP将PDF文件解析为纯文本(字符串),因为我无法访问exec、system或其他被我正在使用的服务器拒绝的函数

我在网上找到的函数无法解析这些PDF文件

这是我从一个echo文件中得到的内容(“file.pdf”)

%PDF-1.4 5 0 obj>streamÿØÿa JFIFÿC%,ţ和')*)-0-(0%()(ÿC((((
然后是所有的内容。 这是PDF 1.45.0

这是我用于PDF 1.2-1.3的函数(不处理这些文件):

函数反编译IPDF($pdfdata){
如果(strlen($pdfdata)<1000&&file_存在($pdfdata))
$pdfdata=文件获取内容($pdfdata);
$result='';
if(preg_match_all('/]*>\s*stream(+)endstream/ui',$pdfdata,$m))
foreach($m[1]作为$chunk){
$chunk=gzuncompress(ltrim($chunk));
$a=preg\u match\u all('/\[([^\]]+)\]/',$chunk,$m2)?$m2[1]:数组($chunk);
foreach($a作为$subchunk){
如果(preg_match_all('/\([^\]+)\)/',$subchunk,$m3)){
$result.=(join(“”,$m3[1]).*');
}
}
}
这里的任何人都可以帮助我使用PHP中的函数(我重复一遍,我尝试了几乎所有已经在线的函数,还有一些类,但它们不能处理我所说的PDF文件)

感谢您的支持;)

%PDF-1.4 5 0 obj << /Type /XObject /Subtype /Image /Filter /DCTDecode /Length 6536 /Width 200 /Height 125 /BitsPerComponent 8 /ColorSpace /DeviceRGB >> stream ÿØÿàJFIFÿÛC  %# , #&')*)-0-(0%()(ÿÛC   ((((
function decomprimiPDF($pdfdata) {
if (strlen ($pdfdata) < 1000 && file_exists ($pdfdata)) 
    $pdfdata = file_get_contents ($pdfdata);
$result = ''; 
if (preg_match_all ('/<<[^>]*FlateDecode[^>]*>>\s*stream(.+)endstream/Uis', $pdfdata, $m)) 
    foreach ($m[1] as $chunk) {
        $chunk = gzuncompress(ltrim ($chunk)); 
        $a = preg_match_all ('/\[([^\]]+)\]/', $chunk, $m2) ? $m2[1] : array ($chunk); 
        foreach ($a as $subchunk) {
            if (preg_match_all ('/\(([^\)]+)\)/', $subchunk, $m3)) {
                $result .= (join ('', $m3[1]) . '*');
            }
        }
}