AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Mit PHP ein RTF Dokument Parsen

Ein Thema von manfred_h · begonnen am 4. Okt 2007 · letzter Beitrag vom 6. Okt 2007
Antwort Antwort
manfred_h

Registriert seit: 4. Nov 2005
Ort: Basel
442 Beiträge
 
Delphi XE2 Enterprise
 
#1

Mit PHP ein RTF Dokument Parsen

  Alt 4. Okt 2007, 17:24
Hallo zusammen
mittels rtfclass lese ich Daten aus einer DB ( MySQL ) die RTF formatert sind.
Das ganze funktioniert aber...

In der DB steht folgendes:
Delphi-Quellcode:
gibt folgendes Zeugnis:\par
\par
Mit 17 Jahren bekam
auf der Webseite sieht es dann so aus:

Delphi-Quellcode:
gibt folgendes Zeugnis:
17 Jahren bekam
Das Probelm ist das nach jedem \par das nächste Wort "verschluckt" wird.

Eigelesen wird das ganze mit:

Delphi-Quellcode:
    <?php
       include('fileadmin/template/wfqbe/rtfclass.php');

       $getArray = t3lib_div::_GET("tx_wfqbe_pi1");
       $id_value = $getArray["id_testimony"];

       $sql="SELECT * FROM TESTIMONY WHERE (TESTIMONY.ID = '$id_value')";

       $result= mysql_query($sql) or die(mysql_error());
       $testimony = mysql_fetch_array($result);
                    $r = new rtf ($testimony['TESTIMONY']);
         $r->output("html");
         $r->parse();
         if( count( $r->err) == 0) { // no errors detected
        echo $r->out;
         }

    ?>

Die Homepage des Autors ist leider nicht mehr zu erreichen.
Dachte mir ich versuchs mal hier.

Danke schon mal für anschauen.
Manfred
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Mit PHP ein RTF Dokument Parsen

  Alt 5. Okt 2007, 07:02
Hallo Manfred,

hast du dir schon mal das hier angesehen: RTF parse class?

Vielleicht ist der Fehler (wenn es denn einer ist) dort behoben.

Grüße vom marabu
  Mit Zitat antworten Zitat
manfred_h

Registriert seit: 4. Nov 2005
Ort: Basel
442 Beiträge
 
Delphi XE2 Enterprise
 
#3

Re: Mit PHP ein RTF Dokument Parsen

  Alt 5. Okt 2007, 08:00
Guten Morgen Marabu

besten Dank für den Tipp. Werde das anschauen.

Shalom
Manfred
  Mit Zitat antworten Zitat
manfred_h

Registriert seit: 4. Nov 2005
Ort: Basel
442 Beiträge
 
Delphi XE2 Enterprise
 
#4

Re: Mit PHP ein RTF Dokument Parsen

  Alt 5. Okt 2007, 11:07
Es ist die gleiche Klasse wie dijenige, welche ich einsetzte.


Manfred
  Mit Zitat antworten Zitat
Benutzerbild von brinkee
brinkee

Registriert seit: 27. Aug 2004
60 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Mit PHP ein RTF Dokument Parsen

  Alt 5. Okt 2007, 12:44
Na, dann selber machen
Markus Brinkmann
  Mit Zitat antworten Zitat
manfred_h

Registriert seit: 4. Nov 2005
Ort: Basel
442 Beiträge
 
Delphi XE2 Enterprise
 
#6

Re: Mit PHP ein RTF Dokument Parsen

  Alt 5. Okt 2007, 23:48
Habe rausgefunden das an allen stellen im Text wo ein Wort fehlt
der Text <span class="f1s20"> steht.
Der HTML Code auf der Seite schaut so aus:
gibt folgendes Zeugnis:</div><div align="left"><span class="f1s20">17 Jahren bekam Weiss jemand was das bedeutet?

Manfred
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#7

Re: Mit PHP ein RTF Dokument Parsen

  Alt 6. Okt 2007, 07:49
Hallo Manfred,

der von dir beobachtete HTML-Code ist nur das Symptom und nicht die Ursache. Ich bin kein PHP-Spezialist, aber ich vermute, dass der Parser einen Fehler beim end-of-line handling begeht.

Freundliche Grüße
  Mit Zitat antworten Zitat
Waldteufel
(Gast)

n/a Beiträge
 
#8

Re: Mit PHP ein RTF Dokument Parsen

  Alt 6. Okt 2007, 10:58
Hallo.

Zitat von marabu:
der von dir beobachtete HTML-Code ist nur das Symptom und nicht die Ursache. Ich bin kein PHP-Spezialist, aber ich vermute, dass der Parser einen Fehler beim end-of-line handling begeht.
Stimmt. Ein Zeilenumbruch wird nämlich nicht als das Ende eines RTF-Dingsdas (\par zum Beispiel) erkannt.

Quick-and-Dirty-Lösung: Probier mal, bei Zeile 600 in rtfclass.php

Code:
if( (ord( $this->rtf[$i]) == 10) || (ord($this->rtf[$i]) == 13)) break; // eat line breaks
zu ersetzen durch

Code:
if ((ord($this->rtf[$i]) == 10) || (ord($this->rtf[$i]) == 13)) {
  if ($this->cw && !$this->cfirst) {
    $this->cw = false;
    $this->flushControl();
  };
  break; // eat line breaks
};
Bei mir funktioniert das.

Gruß,
Waldteufel
  Mit Zitat antworten Zitat
manfred_h

Registriert seit: 4. Nov 2005
Ort: Basel
442 Beiträge
 
Delphi XE2 Enterprise
 
#9

Re: Mit PHP ein RTF Dokument Parsen

  Alt 6. Okt 2007, 11:13


Danke Euch Beiden !!

Das ganze sieht zu 99.9% Super aus.
Ihr habt mir echt mein Wochenende verängert.

Shalom und Gottes Segen
Manfred
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine 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

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:17 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz