![]() |
[PHP] print_r ($abc)
Hallo,
print_r sollte doch bei der Ausgabe eines Arrays jedes Element in einer eigenen Zeile anzeigen. Woran kann es liegen, wenn alle Elemente nebeneinander angezeigt werden? |
Re: [PHP] print_r ($abc)
Ich fürchte, das liegt an der Art und Weise, wie die Browser den HTML-Code interpretieren. Ich nutze meist
echo "<pre>", print_r($abc), "</pre>"; |
Re: [PHP] print_r ($abc)
Zitat:
Die webbrowser sehen Zeilenumbrüche (Linebreak) normal nur als Leerzeichen an ( = Zeilenumbruch ) [edit] keine Redbox :shock: |
Re: [PHP] print_r ($abc)
Hallo,
also mit der Methode von Daniel funktioniert es. Aber wieso? Warum überschreibt der Browser (übrigens FF genauso wie Safari) die Formatierung von print_r? @himitsu: In der Ausgabe im Browser. |
Re: [PHP] print_r ($abc)
Zitat:
Zitat:
(mehrere Leerzeichen werden auch nur als Eines angezeigt) und mit den Formatierungen in der Ausgabe nichts zu tun haben. |
Re: [PHP] print_r ($abc)
Ein Browser ignoriert eben Leerzeichen, Return etc. und interpretiert nur den HTML-Code. Das ist aber auch gut so. Sonst würde bsp. ordentlich eingerückter HTML-Code im Browser auch entsprechend eingerückt dargestellt werden und das Design komplett durcheinander werfen.
Mir den <pre>-Tags werden auch diese Zeichen berücksichtigt und ausgegeben. Das ist schon korrekt. |
Re: [PHP] print_r ($abc)
Hallo,
danke für die Erklärung. Ich habe vor 2 oder 3 Jahren, als ich mich das erstemal mit PHP beschäftigt habe mit dem "PHP 4 Das Praxisbuch" gearbeitet. Dort wurde ein array auch immer mit print_r oder var_dump ausgegeben. In den Beispielen wird das HTML Tag <pre> aber nicht benutzt. In der Ausgabe, die im Buch abgedruckt ist, stehen die Elemente aber trotzdem untereinander und ich bin mir ziemlich sicher, dass mir die Ausgabe wie im Buch gezeigt dargestellt wurde. (Sonst hätte ich schon damals gefragt. :gruebel: ) |
Re: [PHP] print_r ($abc)
Dann hat hast du damals evtl. kein HTML ausgegeben und der Browser hat die Ausgabe als reinen Text interpretiert.
Dann sieht man auch die Zeilenumbrüche. MfG, Bug |
Re: [PHP] print_r ($abc)
Siehe auch die Funktion
![]() Leider kann man sie auf die Funktion nicht anwenden, da print_r die Ausgabe nicht zurückgibt, sondern direkt ausgibt. :? Edit:// print_r unterstützt seit PHP 4.3.0 auch einen zweiten Paramter, der obiges doch ermöglicht:
Code:
Liebe Grüße,
echo nl2br(print_r($var, True));
Valle |
Re: [PHP] print_r ($abc)
Hallo Bug,
das könnte prinzipiell schon sein, aber wie kann ich nicht HTML Code ausgeben? Ich meine der Code sieht ja so aus:
Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title></title> </head> <body> <?php // put your code here function ShowHalloWelt() { $abc=array(1=>"Hallo", "Welt"=>"Welt",3); print '<pre>'; print_r($abc); print_r($b); print ' '; print '</pre>'; } ShowHalloWelt(); ?> </body> </html> |
Re: [PHP] print_r ($abc)
Vielleicht so:
Code:
Oder eben mit entsprechendem Header. Aber ich denke, das obige interpretiert der Browser als reinen Text.
<?php
print_r(array('hallo', 'Mr', 'Spock')); ?> Edit: Also ohne weiteren HTML-Code, Doctype etc. Edit 2: Ne, wird dennoch als HTML interpretiert. |
Re: [PHP] print_r ($abc)
Zitat:
Das würde folgendermaßen gehen:
Code:
Wichtig ist, wie auf der Dokumentationsseite zur
header('Content-Type: text/plain');
![]() Liebe Grüße, Valle |
Re: [PHP] print_r ($abc)
du fragst wie du nicht HTML-Code ausgeben kannst, zeigst aber zugleich das du HTML-Tags per PHP an den Browser sendest.
durch Zitat:
|
Re: [PHP] print_r ($abc)
@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.
|
Re: [PHP] print_r ($abc)
Zitat:
Zitat:
Liebe Grüße, Valle |
Re: [PHP] print_r ($abc)
Zitat:
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:
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".
<?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> @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. ![]()
Code:
Greetz
echo '<pre>', print_r($abc, true), '</pre>';
alcaeus |
Re: [PHP] print_r ($abc)
Zitat:
Liebe Grüße, Valle |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:39 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz