AGB  ·  Datenschutz  ·  Impressum  







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

[PHP] print_r ($abc)

Ein Thema von MrSpock · begonnen am 9. Jan 2010 · letzter Beitrag vom 10. Jan 2010
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#11

Re: [PHP] print_r ($abc)

  Alt 9. Jan 2010, 23:15
Vielleicht so:

Code:
<?php
    print_r(array('hallo', 'Mr', 'Spock'));
?>
Oder eben mit entsprechendem Header. Aber ich denke, das obige interpretiert der Browser als reinen Text.

Edit: Also ohne weiteren HTML-Code, Doctype etc.
Edit 2: Ne, wird dennoch als HTML interpretiert.
  Mit Zitat antworten Zitat
Benutzerbild von Valle
Valle

Registriert seit: 26. Dez 2005
Ort: Karlsruhe
1.223 Beiträge
 
#12

Re: [PHP] print_r ($abc)

  Alt 9. Jan 2010, 23:17
Zitat von MrSpock:
aber wie kann ich nicht HTML Code ausgeben?
Meinst du, wie du dem Browser sagst, dass es sich bei deinem Dokument nicht um HTML sodern um reinen Text handelt?
Das würde folgendermaßen gehen:

Code:
header('Content-Type: text/plain');
Wichtig ist, wie auf der Dokumentationsseite zur header-Funktion steht, dass du diese Funktion aufrufst, bevor du irgendwas mit echo oder dergleichen ausgegeben hast. Denke bitte außerdem dran, dass dein ganzer HTML-Cde in deine Dokument sinnlos ist, wenn du das so machst.

Liebe Grüße,
Valle
Valentin Voigt
BOFH excuse #423: „It's not RFC-822 compliant.“
Mein total langweiliger Blog
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#13

Re: [PHP] print_r ($abc)

  Alt 9. Jan 2010, 23:18
du fragst wie du nicht HTML-Code ausgeben kannst, zeigst aber zugleich das du HTML-Tags per PHP an den Browser sendest.
durch
Zitat:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
sagst du dem Browser das es html-code ist und daher interpretiert er es auch so und zeigt entsprechend alles entsprechend an.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#14

Re: [PHP] print_r ($abc)

  Alt 9. Jan 2010, 23:19
@Valle: Das meint Albert wohl nicht. Er hat früher a nach einem PHP-Grundlagenbuch gearbeitet und da wurde der Code als Text interpretiert. Da wird man wohl kaum den Header manuell gesetzt haben.
  Mit Zitat antworten Zitat
Benutzerbild von Valle
Valle

Registriert seit: 26. Dez 2005
Ort: Karlsruhe
1.223 Beiträge
 
#15

Re: [PHP] print_r ($abc)

  Alt 9. Jan 2010, 23:20
Zitat von SirThornberry:
durch
[...]
sagst du dem Browser das es html-code ist und daher interpretiert er es auch so und zeigt entsprechend alles entsprechend an.
Das ist falsch. PHP sendet automatisch einen HTTP-Header "Content-Type" mit dem Inhalt "text/html" an den Browser. Daran erkennt der Browser, dass es sich um HTML handelt. Am Doctype erkennt er nur, was für'n HTML du da sendest.

Zitat von Matze:
@Valle: Das meint Albert wohl nicht. Er hat früher a nach einem PHP-Grundlagenbuch gearbeitet und da wurde der Code als Text interpretiert. Da wird man wohl kaum den Header manuell gesetzt haben.
Ja, das hat er ja oben geschrieben. Was anderes fällt mir aber nicht ein. Man kann das ganze Dokument mit dem Header-Befehl als Text kennzeichnen oder mit <pre> nur einzelne Passagen. Was das sonst gewesen sein könnte weiß ich nicht.

Liebe Grüße,
Valle
Valentin Voigt
BOFH excuse #423: „It's not RFC-822 compliant.“
Mein total langweiliger Blog
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#16

Re: [PHP] print_r ($abc)

  Alt 10. Jan 2010, 13:23
Zitat von Valle:
Das ist falsch. PHP sendet automatisch einen HTTP-Header "Content-Type" mit dem Inhalt "text/html" an den Browser. Daran erkennt der Browser, dass es sich um HTML handelt. Am Doctype erkennt er nur, was für'n HTML du da sendest.
Beides ist falsch

Rein theoretisch gibt der Content-Type an, welchen Content (ob Bild, Text, Word-Dokument, etc.) der Browser da geliefert bekommt. Da dies aber nicht immer korrekt gemacht wird (z.B. senden viele Download-Scripte keinen Mime-Type voraus) raten die Browser da gerne mal.

Kleiner Test: rufe ein PHP-Script mit folgendem Code in Firefox und Internet Explorer auf:
Code:
<?php

header('text/plain');

?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<head>
<title>Test</title>
</head>
<body>
[b]Test[/b]
</body>
</html>
Was ist das erwartete Verhalten? Der Browser zeigt den HTML-Code direkt an. Wenn ich es richtig in Erinnerung hab (hab grad keine Zeit zu testen) zeigt der IE in dem Fall nicht den HTML-Code an sondern interpretiert das HTML, weil er sieht, dass da HTML geliefert wurde - und das obwohl text/plain als Content-Type geschickt wurde. Das entsprechende Stichwort heisst "Content-Type Sniffing".

@Albert: in Tutorials und Buechern vergisst man oft so Kleinigkeiten, die man automatisch macht - wie z.B. die von Daniel erwaehnte Verwendung von <pre>.

@Daniel: dein Code ist eigentlich nicht ganz korrekt. print_r() mit einem Parameter gibt void zurueck - also nada. Nur wenn du als zweiten Parameter true uebergibst, gibt die Funktion die Ausgabe nicht direkt aufm Output-Buffer aus sondern gibt ihn zurueck:
Code:
echo '<pre>', print_r($abc, true), '</pre>';
Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Benutzerbild von Valle
Valle

Registriert seit: 26. Dez 2005
Ort: Karlsruhe
1.223 Beiträge
 
#17

Re: [PHP] print_r ($abc)

  Alt 10. Jan 2010, 13:28
Zitat von alcaeus:
Beides ist falsch [...]
Ja stimmt, jetzt wo du das sagst erinnere ich mich auch wieder. Das ist vorallem bei Bildern der Fall, da diese oft mit falschen Mimetype vom Server gekennzeichnet werden. Rein theoretisch gesehen ist allerdings der Content-Type dafür zuständig. Im Firefox funktioniert das ja auch.

Liebe Grüße,
Valle
Valentin Voigt
BOFH excuse #423: „It's not RFC-822 compliant.“
Mein total langweiliger Blog
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 11:55 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