zurück zur Startseite
  


Zurück XHTMLforum > Webentwicklung (außer XHTML und CSS) > Serveradministration und serverseitige Scripte
Seite neu laden mit php eine pdf auslesen

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 20.05.2013, 20:29
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 06.10.2010
Beiträge: 177
SpecialFighter befindet sich auf einem aufstrebenden Ast
Standard mit php eine pdf auslesen

hallo alle zusammen,

gibt es eine Möglichkeit, einen bestimmten Teil einer PDF Datei mit PHP auszulesen und diesen in einem String abzulegen?
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 20.05.2013, 22:45
?!?
XHTMLforum-Kenner
 
Registriert seit: 20.03.2013
Beiträge: 1.638
explanator sorgt für eine eindrucksvolle Atmosphäreexplanator sorgt für eine eindrucksvolle Atmosphäre
Standard

Ja. Da PDF-Dokumente ja reine Textdokumente sind, ähnlich wie HTML, lassen sich die Inhalte sehr leicht auslesen.

Du kannst also die Datei mittels file_get_contents() in einen String einlesen und dann den Textabschnitt suchen lassen.
__________________
"Wieso ist der Code schrott, ich dachte hier seien Profis..."
Aus einem Forum.
Mit Zitat antworten
Sponsored Links
  #3 (permalink)  
Alt 21.05.2013, 09:24
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 06.10.2010
Beiträge: 177
SpecialFighter befindet sich auf einem aufstrebenden Ast
Standard

das Problem ist, das der Ordner in dem die pdf datei liegt, via htaccess gesperrt ist.

erhalte dann logischerweise den Fehler:
Warning: file_get_contents(http://www.xyz.de.de/dokumente/yyy.pdf): failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden in /mnt/web2/c1/41/52515441/htdocs/xxx/yyy.php on line 3 bool(false)

was kann ich da machen?

Geändert von SpecialFighter (21.05.2013 um 09:29 Uhr)
Mit Zitat antworten
  #4 (permalink)  
Alt 21.05.2013, 10:14
?!?
XHTMLforum-Kenner
 
Registriert seit: 20.03.2013
Beiträge: 1.638
explanator sorgt für eine eindrucksvolle Atmosphäreexplanator sorgt für eine eindrucksvolle Atmosphäre
Standard

Ist das denn nicht deine Seite wo du drauf zugreifst?
__________________
"Wieso ist der Code schrott, ich dachte hier seien Profis..."
Aus einem Forum.
Mit Zitat antworten
  #5 (permalink)  
Alt 21.05.2013, 10:17
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 06.10.2010
Beiträge: 177
SpecialFighter befindet sich auf einem aufstrebenden Ast
Standard

doch war ein denkfehler ^^

so sieht meine Datei nun aus:

PHP-Code:
<!DOCTYPE html>
<html lang="de">
    <head>
        <meta charset="utf-8" />
</head>
<body>
<?php
$section 
file_get_contents('dokumente/123.pdf'NULLNULL212000);
var_dump($section);
?> 
</body>
und so mein Resultat:
Code:
string(2000) " 4 0 obj << /Length 5 0 R /Filter /FlateDecode >> stream x��������Bw�a�xףyo^&6�����C�� �T������J=�fv�w\L_���nI����}K]���y�÷���Sl��|<5�;W�ν~��ƻ���l�o��}9���?�W�b������[�z�ڶ�����!�c�W��6Mۻ��΋ �{d��7�\WW�pu�⯾s_����a���3x������^�^�V��W{�H�[<��> ��?|l�^�����W��{~%Ze�6c)�Y=7KT*AU�(�w ԝ���n�����W�)aH@��V�HL@rR�m��EX�DVc]��0$V�>b�G���[y����k1���-�J~�2�fa���ƺ���,F�v9���D�|_��@�"���/��I�bC��(��Z�-�=�Ǯv��OFx�Dc���n|]z�v��?�ր�~���N�>X�w��I�}�@E#"(���� ���O�ޣxT��}��k|��p ߤF�G�6Rf���X�G��L�y_�R�!!��X�/����������ñ���޶�qC�N�&o�RP�O�������8Diw�0������>X8�n�s��&>�ci��.������9��(ȃ�� �c�?�S����� ��1�,�h���H@M�=:e�g�|�0<,�@�����/*�Յ~1.\�A�.Q_�J]t����yaތ��Џ����� k�.�����NBJ��c̿o��Ttۚ���y��5��?�u C\�+�N�M�@�`P���~�Y�Mx�b��CX�D�lM[��q#Q�I��~p]���K��K������ 8��o]�8��D�͐��#�ڲ�Tn��Ql[�s��q���?�_-��6t ��?2��-tjKҮ�Ɩ�o�j)�h�2�X6����^���g�H��C�x�c-���#A|��tǡ�����ydL!ȴ� ���3-WJ����JC�>����� � ~�0��>��>ij���P�F�'� �Iu����)MӇ����_5�2�@}��r�!��+�%a$MO؆vP�h1�c�h-- �q\�@#�d�$���1- �5�B1��$L:i[[|��FC��V�T�s��&>6�&f��3F��E���Oi�Q��b5#&�40�t�xӣ��f���'�:%<�€��C"B�`PkpDab�!��Ҝl�yCYU^-M����fVKkYxR� �̺��0�u��53�\"5�$����4ۧ��S����oȒE��Qv�lj�6Z���T_�$�i 1�E�|��/Z�����D��Tk4�������T6#�l�J?m�y�(OtVa�e��#=�Z`H����*�F�M1O�,��G�,;������;��[)ݦm�Nۨ�@5"��Z(� ߼�|��5TS5n3QW�'�p��N�q�4�i�ޞ���w� �*1ȝN���9�"(-��������_�;}}:6��.\Д�W4yZ�LKݒ$�����ۆ��y;s%{��] `����45�����p6 �<��t��Fb�Ȁˡ��xzļ:��~���/��Ģ��B�����5�?�]�2�n��F"D�{���=�,�ư'�Z�'�"�Fô:��\�� �8)0�FZ�x�O�Dxƈ�����&�C*��b "�Q���ֈ}i�v�ц�`Ob�-��R�AI�`Z��Q�I.����FZ#aO��WC� ��(1ę����6D�И&T�7oA.P���".jN��N���XD /x��bC�˜g�������ZSR���H�UV��q�����t�Ie{\��k��"
nicht wirklich brauchbar :/
Mit Zitat antworten
  #6 (permalink)  
Alt 21.05.2013, 11:11
?!?
XHTMLforum-Kenner
 
Registriert seit: 20.03.2013
Beiträge: 1.638
explanator sorgt für eine eindrucksvolle Atmosphäreexplanator sorgt für eine eindrucksvolle Atmosphäre
Standard

Versuch es mal mit dieser Anleitung:
Adobe Community: How to use FlateDecode?
__________________
"Wieso ist der Code schrott, ich dachte hier seien Profis..."
Aus einem Forum.
Mit Zitat antworten
  #7 (permalink)  
Alt 21.05.2013, 11:26
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 06.10.2010
Beiträge: 177
SpecialFighter befindet sich auf einem aufstrebenden Ast
Standard

tut mir Leid aber daraus werd ich leider überhaupt nicht schlau :/
Mit Zitat antworten
  #8 (permalink)  
Alt 21.05.2013, 11:51
?!?
XHTMLforum-Kenner
 
Registriert seit: 20.03.2013
Beiträge: 1.638
explanator sorgt für eine eindrucksvolle Atmosphäreexplanator sorgt für eine eindrucksvolle Atmosphäre
Standard

Deine Daten innerhalb des Streams sind komprimiert. Deflate nutzt Zip, bekannt ist dir eventuell die Endung .zip für komprimierte Dateien.
Hier ist eben nicht die Datei komprimiert sondern lediglich ein String. Eingeleitet wird das mit zum Beispiel mit
Code:
4 0 obj 
<< /Length 5 0 R /Filter /FlateDecode >> 
stream
Daten
endstream
endobj
Du brauchst also die Daten, die zwischen stream und endstream liegen.
Du musst also den Stream ohne das Wort Stream mit den Zip-Funktionen in PHP erst mal dekomprimieren.

In der PHP-Doku zu Zip findest du im ersten Kommentar eine Funktion, die dir das abnimmt.
Damit hast du es sehr leicht den Stream erst mal zu dekomprimieren und danach liegt er erst zur weiteren Bearbeitung im Textformat vor.
__________________
"Wieso ist der Code schrott, ich dachte hier seien Profis..."
Aus einem Forum.
Mit Zitat antworten
  #9 (permalink)  
Alt 21.05.2013, 11:54
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 06.10.2010
Beiträge: 177
SpecialFighter befindet sich auf einem aufstrebenden Ast
Standard

habe jetzt das hier:

PHP-Code:
<?php

$ZIPContentStr 
"dokumente/123.pdf";

function 
decompress_first_file_from_zip($ZIPContentStr){
//Input: ZIP archive - content of entire ZIP archive as a string
//Output: decompressed content of the first file packed in the ZIP archive
    //let's parse the ZIP archive
    //(see 'http://en.wikipedia.org/wiki/ZIP_%28file_format%29' for details)
    //parse 'local file header' for the first file entry in the ZIP archive
    
if(strlen($ZIPContentStr)<102){
        
//any ZIP file smaller than 102 bytes is invalid
        
printf("error: input data too short<br />\n");
        return 
'';
    }
    
$CompressedSize=binstrtonum(substr($ZIPContentStr,18,4));
    
$UncompressedSize=binstrtonum(substr($ZIPContentStr,22,4));
    
$FileNameLen=binstrtonum(substr($ZIPContentStr,26,2));
    
$ExtraFieldLen=binstrtonum(substr($ZIPContentStr,28,2));
    
$Offs=30+$FileNameLen+$ExtraFieldLen;
    
$ZIPData=substr($ZIPContentStr,$Offs,$CompressedSize);
    
$Data=gzinflate($ZIPData);
    if(
strlen($Data)!=$UncompressedSize){
        
printf("error: uncompressed data have wrong size<br />\n");
        return 
'';
    }
    else return 
$Data;
}

function 
binstrtonum($Str){
//Returns a number represented in a raw binary data passed as string.
//This is useful for example when reading integers from a file,
// when we have the content of the file in a string only.
//Examples:
// chr(0xFF) will result as 255
// chr(0xFF).chr(0xFF).chr(0x00).chr(0x00) will result as 65535
// chr(0xFF).chr(0xFF).chr(0xFF).chr(0x00) will result as 16777215
    
$Num=0;
    for(
$TC1=strlen($Str)-1;$TC1>=0;$TC1--){ //go from most significant byte
        
$Num<<=8//shift to left by one byte (8 bits)
        
$Num|=ord($Str[$TC1]); //add new byte
    
}
    return 
$Num;
}
?>
es kommt nur eine weiße Seite
Mit Zitat antworten
Sponsored Links
  #10 (permalink)  
Alt 21.05.2013, 12:07
?!?
XHTMLforum-Kenner
 
Registriert seit: 20.03.2013
Beiträge: 1.638
explanator sorgt für eine eindrucksvolle Atmosphäreexplanator sorgt für eine eindrucksvolle Atmosphäre
Standard

Du liest die gesamte PDF-Datei ein und übergibst sie komplett der Funktion. Das kann so nicht gehen.
Nur die Stream-Bestandteile der Pdf-Datei sind komprimiert, aber das schrieb ich ja schon.
Du musst demnach folgendes machen:
  1. Pdf einlesen in ein String.
  2. Im String den Teil extrahieren der den Stream enthält
  3. den Streamteil der Funktion übergeben
  4. Der Rückgabewert der Funktion enthält den dekomprimierten String
  5. Diesen für die weiter Bearbeitung nutzen.
__________________
"Wieso ist der Code schrott, ich dachte hier seien Profis..."
Aus einem Forum.
Mit Zitat antworten
Sponsored Links
Antwort


Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Text Slider -> Text von Textdatei per PHP auslesen? Andimau Serveradministration und serverseitige Scripte 3 20.06.2012 14:49
HTML mit PHP Code aus Datenbank auslesen + ausführen Garlandt Serveradministration und serverseitige Scripte 14 01.05.2011 12:45
Dateien auslagern - Include und PHP ArcVieh Serveradministration und serverseitige Scripte 17 27.03.2008 18:09
Pdf mit php includen Adenauer (X)HTML 8 18.02.2006 17:38


Alle Zeitangaben in WEZ +2. Es ist jetzt 11:40 Uhr.