php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > XML
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


XML Hier passt alles rein, was das Thema XML (XSLT, JSON etc...) betrifft, auch in Verbindung mit PHP

Antwort
 
LinkBack Themen-Optionen Bewertung: Bewertung: 2 Stimmen, 5,00 durchschnittlich.
  #16 (permalink)  
Alt 09-07-2004, 12:53
cst
 Registrierter Benutzer
Links : Onlinestatus : cst ist offline
Registriert seit: Aug 2003
Beiträge: 141
cst ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hi,
das Skript muss angepasst werden, da es für die Verwendung auf der Kommandozeile geschrieben wurde.

Ich habe das mal gemacht, allerdings nicht getestet.
Der Aufruf müsste dann so lauten:
Code:
rtf2htm.php?rtf=input_file.rtf&html=output_file.html
Sollen Absätze in <P>-Paragraphs überführt werden, muss man das ganze so aufrufen:
Code:
rtf2htm.php?rtf=input_file.rtf&html=output_file.html&par=1
Das Teil ist recht wild programmiert. Egal. Die eigentliche Arbeit mach das Skript in den Include-Dateien die jeweils mit require eingebunden werden und $input ändern. Wild! Spaghetti-Code at it´s best! Naja, da könnte man aber was draus machen. Vielleicht ne schöne Klasse schreiben. Vielleicht setze ich mal ran, wenn ich Zeit habe.

Ersetze mal die rtf2htm.php durch folgendes Skript.


PHP-Code:
<?
/*
#    This program is free software; you can redistribute it and/or modify
#    it under the terms of the GNU General Public License as published by
#    the Free Software Foundation; either version 2 of the License, or
#    (at your option) any later version.
#
#    This program is distributed in the hope that it will be useful,
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#    GNU General Public License for more details.
#
#    You should have received a copy of the GNU General Public License
#    along with this program; if not, write to the Free Software
#    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
#
#    (C) Martin Mevald, 2002, 2003, 2004
#    [email]martinmv@penguin.cz[/email]
#    [url]http://www.penguin.cz/~martinmv/[/url]
*/

$par_is_p=0;
$no_small_footnotes=0;
$count=0;

if (
$_GET['par']) {
    
$par_is_p=1;
    
$count++;
    }

if (
$_GET['nosmall']) {
    
$no_small_footnotes=1;
    
$count++;
    }

if ((
$argc-$count)!=3) {
echo 
"Usage:   rtf2htm.php?rtf=input_file.rtf&html=output_file.html[&par=1][&nosmall=1]\n";
echo 
"&par=1 - translate all paragraphs as \"p\" html command\n";
echo 
"&nosmall=1 - footnotes: font size as normal text\n\n";
exit; 



@
$fd=fopen($_GET['rtf'],"r");

if (
$fd==NULL) {
echo 
"File ".$_GET['rtf']." not found.\n\n";
exit;

}

$input fread ($fd,filesize($_GET['rtf']);

fclose ($fd);

require(
"rtfimages_correc.php");

$input $output;

require(
"rtfimages.php");

/*$output = $input;*/

require("rtftohtm.php");

$input=$output;
require(
"htmlparser.php");

$input=$output;
require(
"small_meta.php");


@
$fd=fopen($_GET['html'],"wb");

if (
$fd==NULL) {
echo 
"I can't write to file ".$_GET['html'].".\n\n";
exit;
}

$text="<!DOCTYPE html public \"-//w3c//dtd html 4.0 transitional//cs\">
<html>
<head>
<meta HTTP-Equiv=\"Content-Type\" CONTENT=\"text/html; charset=iso-8859-2\">
</head>
<body text=\"#000000\" bgcolor=\"#FFFFFF\">
<font face=\"Verdana, Helvetica CE, Arial CE, Helvetica, Arial\">
<font size=\"2\">

"
;

fwrite($fd,$text);
fwrite($fd,$output);

$text="
</body>
</html>"
;

fwrite($fd,$text);


fclose($fd);
?>
Alles ohne Gewähr.
__________________
Ich denke, also bin ich.
Manche sind trotzdem!
Mit Zitat antworten
  #17 (permalink)  
Alt 09-07-2004, 13:46
Baumschule1234
 Junior Member
Links : Onlinestatus : Baumschule1234 ist offline
Registriert seit: Mar 2004
Beiträge: 84
Baumschule1234 ist zur Zeit noch ein unbeschriebenes Blatt
Post

Vielen Dank !!! Es klappt!!!
ich werd es nur noch ein wenig umproggen, dass ich meine Variable (Inhalt aus DB) dierekt an eine Funktion übergebe.
Also ohne es ich eine Datei zu schreiben;
Mit Zitat antworten
  #18 (permalink)  
Alt 09-07-2004, 14:08
cst
 Registrierter Benutzer
Links : Onlinestatus : cst ist offline
Registriert seit: Aug 2003
Beiträge: 141
cst ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von Baumschule1234
Vielen Dank !!! Es klappt!!!
Prima, dann hab ich ja ´nen Betatester gefunden. Ok, dann werd ich da mal ne Klasse oder einfache Funktion draus bauen.
__________________
Ich denke, also bin ich.
Manche sind trotzdem!
Mit Zitat antworten
  #19 (permalink)  
Alt 09-07-2004, 14:35
Baumschule1234
 Junior Member
Links : Onlinestatus : Baumschule1234 ist offline
Registriert seit: Mar 2004
Beiträge: 84
Baumschule1234 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

sag bescheid wenn du fertig bist...
Mit Zitat antworten
  #20 (permalink)  
Alt 09-07-2004, 17:27
Baumschule1234
 Junior Member
Links : Onlinestatus : Baumschule1234 ist offline
Registriert seit: Mar 2004
Beiträge: 84
Baumschule1234 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hab noch ein Fehler entdeckt....
bei 3. Auftruf der Funktion zum Umwandeln spinnt er rum:

Hier lasse ich einfach mal den selber RTF-Code 10 mal in einer Schleife umwandeln...
PHP-Code:
<?
include('rtftohtml.php');
for(
$i=0;$i<10;$i++)
{
   
$input="{\rtf1\ansi\ansicpg1252\deff0\deftab720{\fonttbl{\f0\fswiss MS Sans Serif;}{\f1\froman\fcharset2 Symbol;}{\f2\fswiss Arial;}{\f3\fswiss Arial;}{\f4\fswiss\fcharset1 MS Sans Serif;}} {\colortbl\red0\green0\blue0;} \deflang1031\horzdoc{\*\fchars }{\*\lchars }\pard\plain\f2\fs20 Zuschnitt/Nut/Stufenfalz \par } ";
   
$inputrtf2html($input);
   echo(
"OUTPUT:<br>$input");
}
?>
Und hier die Funktion:
PHP-Code:
function rtf2html($input)
{
   require(
"rtf2htm/rtfimages_correc.php");
   
$output $input;
   
$input $output;
   require(
"rtf2htm/rtfimages.php");
   
$output $input;
   require(
"rtf2htm/rtftohtm.php");
   
$input=$output;
   require(
"rtf2htm/htmlparser.php");
   return(
$input);

Das ganze funktionier 2 mal;und beim 3. Durchlauf das hier:

Fatal error: Cannot redeclare rtfpicturesearch() (previously declared in C:\Server\www\Auftragsverwaltung\rtf2htm\rtfimages.php:28) in C:\Server\www\Auftragsverwaltung\rtf2htm\rtfimages.php on line 27


Kann mir dea einer erklären??
Mit Zitat antworten
  #21 (permalink)  
Alt 09-07-2004, 18:56
pekka
 PHP Master
Links : Onlinestatus : pekka ist offline
Registriert seit: Jun 2001
Ort: Köln
Beiträge: 6.608
pekka befindet sich auf einem aufstrebenden Ast
Standard

Du mußt deinen Code umschreiben. Du kannst eine Funktion logischerweise nur ein definieren, und das tust du offenbar in einem der includes. Funktionsdefinitionen aus den Includes rausholen und in eins stecken, das nur einmal aufgerufen wird.

Normalerweise gibts für den fall include_once(), aber das wird dir hier nicht helfen, da du wahrscheinlich ja Code aus den includes direkt ausführen mußt.
Mit Zitat antworten
  #22 (permalink)  
Alt 10-07-2004, 19:33
cst
 Registrierter Benutzer
Links : Onlinestatus : cst ist offline
Registriert seit: Aug 2003
Beiträge: 141
cst ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hab Geduld. Ich bin gerade dabei die Klasse fertig zu machen. Ich poste dann einen Link zum Download.
__________________
Ich denke, also bin ich.
Manche sind trotzdem!
Mit Zitat antworten
  #23 (permalink)  
Alt 12-07-2004, 07:58
cst
 Registrierter Benutzer
Links : Onlinestatus : cst ist offline
Registriert seit: Aug 2003
Beiträge: 141
cst ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Oh Mann! Was hab ich mir da nur eingebrockt. Den Quellcode von Mevald in eine ordentliche Klasse zu bringen bedeutet eigentlich einen komplette rewrite des Codes. 5 Millionnen globale Variablen. Ich bin am Wochenende fast wahnsinnig geworden.
@Baumschule1234: Die Klasse wird noch etwas auf sich warten lassen. Sorry!
__________________
Ich denke, also bin ich.
Manche sind trotzdem!
Mit Zitat antworten
  #24 (permalink)  
Alt 20-07-2004, 10:07
Baumschule1234
 Junior Member
Links : Onlinestatus : Baumschule1234 ist offline
Registriert seit: Mar 2004
Beiträge: 84
Baumschule1234 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ja, iss schon ok; lass dir nur Zeit.
Sag mir dann aber bitte bescheid (schick mir ne PM)

Danke für deine Bemühungen.....
Mit Zitat antworten
  #25 (permalink)  
Alt 26-08-2004, 15:13
Baumschule1234
 Junior Member
Links : Onlinestatus : Baumschule1234 ist offline
Registriert seit: Mar 2004
Beiträge: 84
Baumschule1234 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo,
wie schauts denn aus mit der Class ??? So langsam wird es ziemlich dringend bei mir... Ich brauch irgend ne Funktion die auch die Sonderzeichen beachtet....
Mit Zitat antworten
  #26 (permalink)  
Alt 26-08-2004, 15:15
cst
 Registrierter Benutzer
Links : Onlinestatus : cst ist offline
Registriert seit: Aug 2003
Beiträge: 141
cst ist zur Zeit noch ein unbeschriebenes Blatt
Unhappy

Sorry,
das wird die nächsten Wochen nix. Ich bin mit Arbeit ziemlich zu.
__________________
Ich denke, also bin ich.
Manche sind trotzdem!
Mit Zitat antworten
  #27 (permalink)  
Alt 26-08-2004, 15:39
Baumschule1234
 Junior Member
Links : Onlinestatus : Baumschule1234 ist offline
Registriert seit: Mar 2004
Beiträge: 84
Baumschule1234 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

mhm, schade...

Kennt sonst keiner Möglichkeiten wie ich das mit den Sonderzeichen geregelt bekomme??? Evt. mit ereg-repalce???

Bitte, ich bin für jeden Tip dankbar!!!!
Mit Zitat antworten
  #28 (permalink)  
Alt 16-12-2006, 08:24
Juncker
 Newbie
Links : Onlinestatus : Juncker ist offline
Registriert seit: Dec 2006
Beiträge: 1
Juncker ist zur Zeit noch ein unbeschriebenes Blatt
Standard Umlaute für rtfclass.php

in der classe die function flusSpecial einfach wie folgt erweitern mit den bekannten Umlauten

function flushSpecial( $special) {

if( strlen( $special) == 2) {
if( $this->wantXML) {
$this->out .= "<special value=\"".$special."\"/>";
} else {
switch( $special) {
// Sonderzeichen
case "e4": $this->out .= "ä"; break; // ä
case "c4": $this->out .= "Ä";break; // Ä
case "f6": $this->out .= "ö"; break; // ö
case "d6": $this->out .= "Ö"; break; // Ö
case "fc": $this->out .= "ü"; break; // ü
case "dc": $this->out .= "Ü"; break; // Ü
case "df": $this->out .= "ß"; break; // ß
case "80": $this->out .= "&euro;"; break; // euro
case "b0": $this->out .= "&deg;"; break; // grad
case "b5": $this->out .= "&micro;"; break; // micro
case "a7": $this->out .= "&sect;"; break; // pargraph
case "c1": $this->out .= "&Aacute;"; break;
case "e1": $this->out .= "&aacute;"; break;
case "c0": $this->out .= "&Agrave;"; break;
case "e0": $this->out .= "&agrave;"; break;
case "c9": $this->out .= "&Eacute;"; break;
case "e9": $this->out .= "&eacute;"; break;
case "c8": $this->out .= "&Egrave;"; break;
case "e8": $this->out .= "&egrave;"; break;
case "cd": $this->out .= "&Iacute;"; break;
case "ed": $this->out .= "&iacute;"; break;
case "cc": $this->out .= "&Igrave;"; break;
case "ec": $this->out .= "&igrave;"; break;
case "d3": $this->out .= "&Oacute;"; break;
case "f3": $this->out .= "&oacute;"; break;
case "d2": $this->out .= "&Ograve;"; break;
case "f2": $this->out .= "&ograve;"; break;
case "da": $this->out .= "&Uacute;"; break;
case "fa": $this->out .= "&uacute;"; break;
case "d9": $this->out .= "&Ugrave;"; break;
case "f9": $this->out .= "&ugrave;"; break;
case "80": $this->out .= "€"; break; // euro
case "d1": $this->out .= "&Ntilde;"; break;
case "f1": $this->out .= "&ntilde;"; break;
case "c7": $this->out .= "&Ccedil;"; break;
case "e7": $this->out .= "&ccedil;"; break;
case "dc": $this->out .= "&Uuml;"; break;
case "fc": $this->out .= "&uuml;"; break;
case "bf": $this->out .= "¿"; break;
case "a1": $this->out .= "¡"; break;
case "b7": $this->out .= "&middot;"; break;
case "a9": $this->out .= "&copy;"; break;
case "ae": $this->out .= "&reg;"; break;
case "ba": $this->out .= "&ordm;"; break;
case "aa": $this->out .= "&ordf;"; break;
case "b2": $this->out .= "&sup2;"; break; // hoch2
case "b3": $this->out .= "&sup3;"; break; // hoch3

}
// $this->out .= "$special"; // HTM Zeichentabelle unter: http://selfhtml.teamone.de/html/referenz/zeichen.htm
}
Mit Zitat antworten
  #29 (permalink)  
Alt 19-06-2007, 11:04
agentor
 Newbie
Links : Onlinestatus : agentor ist offline
Registriert seit: Jun 2007
Beiträge: 1
agentor ist zur Zeit noch ein unbeschriebenes Blatt
Unhappy

Zitat:
Original geschrieben von hand
Nimm das Skript "rtfclass.php"
und füge ganz am Ende vor dem ?> folgenden Code ein:
Code:
$InpRTF = "input.rtf"; // Definiere hier den RTF-Filename
if (file_exists($InpRTF)) {
	$fp = fopen($InpRTF,"r"); 
	while (!feof($fp)) { 
		$rtf .= fgets($fp, 4096);
	}
	fclose($fp); 
	// $r = new rtf( stripslashes($rtf)); // entweder diese Zeile
	$r = new rtf($rtf); // oder diese Zeile verwenden
	$r->output("html"); // hier kannst Du auch XML angeben
	$r->parse();
	if( count( $r->err) == 0) {
		echo $r->out;
	}
} else {
	print "Inputfile: <strong>$InpRTF</strong> nicht gefunden.";
}
Entweder funktioniert die Zeile
$r = new rtf( stripslashes($rtf));
oder
$r = new rtf($rtf);

Im Original war die erste angegeben, hat aber bei mir nicht gefunzt, deshalb habe ich das stripslashes entfernt.
Bis auf Umlaute funktioniert die Angelegenheit. Hatte heute auch den ersten Kontakt mit dieser RTF2HTML-Klasse.

Viel Glück
hallo,
auch wenn das letzt posting in diesem thema schon etwas her is, muss ich hier noch was reinschreiben.
die klasse funktioniert soweit. nur gibt mir das script leider nur die erste zeile des rtf dokuments aus. hab auch den quellcode der klasse überflogen, bin aber bis jetzt noch nicht dahinter gekommen woran es liegt.

vielleicht hat ja noch jemand nen tip, ich mach mich erstmal weiter auf die suche

mfg
agentor
Mit Zitat antworten
  #30 (permalink)  
Alt 06-08-2007, 16:10
phobia
 Registrierter Benutzer
Links : Onlinestatus : phobia ist offline
Registriert seit: Dec 2005
Beiträge: 60
phobia ist zur Zeit noch ein unbeschriebenes Blatt
Standard

weil ich da gerade was vonwegen "rtfimages.php" lese - kann das script etwa auch bilddaten aus RTFs korrekt konvertieren?
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

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 an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 20:36 Uhr.