HTML Code mit PHP ausgeben.

race

race

Aktives Mitglied
Thread Starter
Dabei seit
28.04.2007
Beiträge
224
Reaktionspunkte
6
Guten Morgen!

gibt es eine Möglichkeit umfangreichen HTML Code in PHP auszugeben.

Ich habe z.B. eine Variable mit dem Inhalt:

<html><body>....u.s.w. <br>...</body></html>

und möchte dieses genauso ausgeben, also nicht als Text, sondern als Internetseite.

Problem sind halt die Escape Zeichen in der Variablen

Ich hoffe ihr versteht was ich meine

Race
 
...wenn ich dich recht verstehe, dann einfach 2 Escapezeichen nutzen ;-)
 
Danke schonmal


...wenn ich dich recht verstehe, dann einfach 2 Escapezeichen nutzen ;-)

Bei der Variablen kann es sich auch um nen ganze Webseite handeln...
der genannte Wert war nur ein Beispiel...

Außerdem kann die Variable unterschiedliche Werte annehmen, ein manuelles Escapezeichen bringt da nix.

race
 
einfaches HTML-Zeugs

Code:
echo "<html><body>Mein Text ist hier zu finden<br><a href=\"http://www.example.org\">der Link</a></body></html>;
oder
Code:
echo '<html><body>Mein Text ist hier zu finden<br><a href="http://www.example.org">der Link</a></body></html>';
wobei ich erstere Variante sauberer finde

mit einer Variable aus PHP
Code:
echo "<html><body>".$ersterText."<br>".$zweiterText."</body></html>";

Um Spaghettizeilen zu vermeiden kannst Du am Ende von echo immer \n für eine neue Zeile im Quelltext angeben

Code:
echo "<p>immer schön formatieren</p>\n"
 
Und was passt dir an htmlspecialchars nicht?
 
bei

<?php
$str = '<p class=Formatvorlage1 style='line-height:200%'><u><span style='font-size:12.0pt;line-height:200%;font-family:"Times New Roman";font-style:normal'>xxx</span></u><span style='font-size:12.0pt;line-height:200%;font-family:"Times New Roman";font-style:normal'>ca. 50 m hinter dem Deich gelegen</span></p>';

echo htmlspecialchars_decode($str, ENT_QUOTES);

?>

gibt es ne Fehlermeldung

Parse error: syntax error, unexpected T_STRING in /Applications/xampp/xamppfiles/htdocs/1.php on line 2

race
 
Zuletzt bearbeitet von einem Moderator:
ja kein wunder... du machst nen string mit ', hast aber innen drin nochmal ', das musst du entweder escapen oder " verwenden


$foo = 'string mit "-zeichen drin';
$bar = "string mit \"-zeichen drin';
$baz = 'string mit \'-zeichen drin';
$foobar = "string mit \"-zeichen drin';
 
versteh dein problem nicht so ganz. wenn du alles in

Code:
 $page
hast, wieso kannst du das nicht mit

Code:
 echo $page
ausgeben? wo kommt der variablenwert her? von einem file_open oder so? was meinst du mit escape-zeichen, das escapen/maskieren von anfuehrungszeichen?

ansonsten kannst du dir auch mal die funktionen zur ausgabepufferung, z.b. ob_start(), ansehen. hier kannst du z.b. den ganzen kram auch einer variablen zuweisen. vorteil: du sparst dir z.b. die ganze maskiererei von " bzw. '...

markus
 
Nochmal ein Beispiel:
Ich will den Kompletten HTML-Code eine Webseite kopieren und in eine PHP Variable schreiben.
Bei der Ausgabe soll dann die Seite genauso aussehen, wie die die ich kopiert habe.

Code:
// website einlesen
$lines = file ('http://www.example.com/');

// website ausgeben
$html = implode ("", $lines);
echo $html;

aber das inline-html in php und damit ausgeben is ziemlich unsauber. für sowas gibt es template enginges wie smarty!
 
Weil du die ' und " nicht durchgängig/falsch gesetzt hast :)

edit: Ich sollte in der früh nicht posten wollen :D

:)
 
gibt es ne Fehlermeldung

Parse error: syntax error, unexpected T_STRING in /Applications/xampp/xamppfiles/htdocs/1.php on line 2

race

Na bitte, das ist schon tausend Mal aussagekräftiger als das rumgedruckse vorher.

Dein Problem ist, dass du ' und " in deinem HTML-Code benutzt und du diese Zeichen deswegen nicht ohne weiteres zum deklarieren eines String gebrauchen kannst.

Du kannst es jetzt entweder mit

HTML:
$string = <<<CODEWORT
<html...>
CODEWORT;
versuchen, wobei CODEWORT in dem HTML-Code selbst nicht vorkommen darf. Oder am besten mit:
HTML:
?>
<html>...
<?php
 
Danke erst einmal. Ich werde mal alles in Ruhe ausprobieren.

Wofür ich das brauche:
Ich kriege von einem Bekannten, jede menge .doc Dokumente(Nur formatierter Text) die er ins Internet setzen will.

Bis jetzt habe ich alles mit Frontpage umgewandelt und dann ins Internet gestellt.

Da jetzt zu dem Text aber noch Bilder und andere Informationen kommen, würde ich alles gerne in einen Datenbank schreiben.

also z.B.
Tabelle 1 Spalte 1 = Text aus der .Doc als HTML CODE
Tabelle 1 Spalte 2 = Bild1
u.s.w

Ich würde dann, die .doc Dokumente mir MS Frontpage in .html Dokumente umzuwandeln und den Code in Spalte1 schreiben.

durch die Umwandlung mit Frontpage kommen halt auch die '.
 
So, habe es jetzt einigermaßen hingekriegt.

Das Problem ist einfach der miserable Code, den World/Frontpage ausspuckt.

Mit ordentlichem HTML Code klappt es wunderbar.

Danke an Alle

Race
 
Zuletzt bearbeitet:
Niemand will ernsthaft mit dem, was Word ausspuckt, das Netz verschmutzen. Aber selbst dessen Code in eine Variable einzulesen sollte mittels addslashes() kein Problem sein.

Davon unabhängig halte ich nicht wirklich was von der Idee, den ganzen HTML-Code mit in die DB zu schreiben? Was machst du, wenn dein Bekannter morgen auf die Idee kommt, dass es klasse wäre, alles auch als PDF zum Download anbieten zu können?
 
  • Gefällt mir
Reaktionen: donsimon1991 und race
Niemand will ernsthaft mit dem, was Word ausspuckt, das Netz verschmutzen.

Da hast du ja schon recht, aber was ist die Alternative. Wenn ich nicht jede Word Datei von Hand umwandle?

Davon unabhängig halte ich nicht wirklich was von der Idee, den ganzen HTML-Code mit in die DB zu schreiben?

Habe auch schon überlegt, ob es nicht besser ist, den Text als HTML Seite zu lassen und unter jeder Seite einen PHP-Teil mit den Zusatzdaten, den Bildern und der Navigation

race
 
Zurück
Oben Unten