PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Inhalt einer Ebene in eine PHP-Variable?


mapel110
2008-06-03, 12:13:30
Geht das irgendwie komfortabel?

Ich hab bisher zum Beispiel:
<div id="test">blablbla</div>

Geht da einfach

$inhalt="<div id="test">blablbla</div>";

:confused:

Aber dann wird wohl die Ebene nicht mehr angezeigt, wenn ich sie in eine Variable "umleite"?
und ich müsste dann zusätzlich drunter nochmal "echo $inhalt;" machen?

Marscel
2008-06-03, 12:14:24
Richtig, PHP erzeugt nur dann Output von gespeicherten Variablen, wenn du print oder echo davor setzt.

mapel110
2008-06-03, 12:18:33
LOL
Kaum stell ich die Frage, löst sich alles in Luft auf. Jetzt gibts gar keine Anzeige mehr im Browser und ich kann alles in eine Excel-Tabelle umleiten, sagt der Auftraggeber aka Chef.
O_o
Trotzdem danke fürs Lesen und den Hinweis.

The_Invisible
2008-06-03, 13:07:16
du hast trotzdem bei der zuweisung vergessen die " zu escapen :)

mfg

mapel110
2008-06-03, 13:58:57
du hast trotzdem bei der zuweisung vergessen die " zu escapen :)

mfg
jaja... :tongue:

ehm, doch eine Frage dazu. Wenn ich das direkt mit dem PHP-Code in die Excel-Tabelle umleite, dann gibt das doch sicher Murks?! Also muss ichs doch erst durch den Browser interpretieren lassen?!

Aber wenn das so sein sollte, wie bekomme ich dann nur das angezeigte Ergebnis in Excel rein?!

(Hach, was bin ich wieder verwirrt :ucrazy4: )

Beispiel:
test.php
$dies_ist_eine_php_variable="Der Testinhalt";
$ausgabe="<table><tr><td>$dies_ist_eine_php_variable</td></tr></table>";
$_SESSION[output]=$ausgabe;

export.php
excel header....
echo $_SESSION[output];
---------------------------------------------
Dann wird die Tabelle in Excel wohl nicht "Der Testinhalt" anzeigen, sondern "$dies_ist_eine_php_variable"

Lösung dazu?
/edit
Konkretes Beispiel:
<?
session_start();
header("Content-type: application/vnd-ms-excel");
header("Content-Disposition: attachment; filename=export.xls");
?>
<html>
<head>
<meta name="author" content="Michael Apel">
<meta name="editor" content="Geany 0.14">
</head>
<body>
<?php
$test="uih, funzt doch";
?>
<table id="bla"><tr><td>$test</td></tr></table>
</body>
</html>

Dann steht leider im Excel-Formular tatsächlich $test und nicht "uih, funzt doch". :(

LordZed
2008-06-03, 14:09:52
Soll das Script gestartet werden und dir dann eine XLS-Datei am Ende ausspucken!? Irgendwas komplexeres oder einfach nur ne Tabelle!?

Was das $test angeht versuch da mal <?=$test?>

Das ist vereinfachtes PHP für <?php echo $test; ?>

mapel110
2008-06-03, 14:13:04
Klar, in PHP-Tags setzen. :bonk: Thx. Das geht.

Ja, es geht um eine bzw. mehrere komplexe Tabellen, aber ich denke, jetzt bekomm ichs hin. =)

Matthias2x
2008-06-03, 14:35:31
Soll das Script gestartet werden und dir dann eine XLS-Datei am Ende ausspucken!? Irgendwas komplexeres oder einfach nur ne Tabelle!?

Was das $test angeht versuch da mal <?=$test?>

Das ist vereinfachtes PHP für <?php echo $test; ?>

das ist nicht vereinfacht, das ist die schreibweise für faule ;D .. übrigens kann der schuß fix nach hinten losgehen wenn man PHP5 einsetzt .. "short_open_tags" ist da standardmäßig Off ..

mapel110
2008-06-03, 15:41:29
das ist nicht vereinfacht, das ist die schreibweise für faule ;D .. übrigens kann der schuß fix nach hinten losgehen wenn man PHP5 einsetzt .. "short_open_tags" ist da standardmäßig Off ..
Den Tipp kann ich gebrauchen. Mein Script wird zwar mir PHP4 derzeit erstellt, aber es solls auch noch mit der 5er-Version tun.

Matthias2x
2008-06-03, 16:26:27
yep schreib lieber ..

<?php
...
?>

ist zudem übersichtlicher wenn du später wiedermal reinschaust. mit short_open_tags auf On kann es durchaus passieren das PHP sowas parsen will ..

<?xml version="1.0" encoding="utf-8" ?>


ändern kannst du die einstellung zentral in der php.ini .. oder über einen eintrag in einem .htaccess file

LordZed
2008-06-05, 11:01:58
Danke für den Hinweis! Das PHP5 das standartmäßig aus hat wusste ich nicht, da auf meinem alten Server die 4er läuft. Da wir aber grad auf nen neuen Umsteigen ist dort auch ne 5er enthalten! Na dann werd ich mal meine Projekte nach diesem String durchsuchen :-D

mapel110
2008-06-06, 15:56:11
echo "<table id=\"ausgabe_vermittlung_nicht_angenommen\" >";
if ($aktueller_monat_navm[$i]) {
/* HEADER für die Monatsdaten */
echo "<tr><td>Jahr/Monat</td><td>_</td>";

$monat_anzeige[$j] = array('jahr' => array($_SESSION[datum_beginn_greg_jahr]), 'Monat' => array($_SESSION[datum_beginn_greg_monat]));
$j++;
$ausgabe_monat=$_SESSION[datum_beginn_greg_monat];
$ausgabe_jahr=$_SESSION[datum_beginn_greg_jahr];
$ausgabe_monat_ende=$_SESSION[datum_ende_greg_monat];
$ausgabe_jahr_ende=$_SESSION[datum_ende_greg_jahr];

while (mktime(0,0,0,$ausgabe_monat,1,$ausgabe_jahr) < mktime(0,0,0,$ausgabe_monat_ende,1,$ausgabe_jahr_ende)) {
$ausgabe_monat++;
if ($ausgabe_monat==13)
{
$ausgabe_monat=1;
$ausgabe_jahr++;
}
$monat_anzeige[$j] = array('jahr' => array($ausgabe_jahr), 'Monat' => array($ausgabe_monat));
$j++;

}
foreach ($monat_anzeige as $wert){
/* Ausgabe der abgefragten Monate als Header für die Tabelle */
echo "<td>".$wert['jahr'][0]."/".$wert['Monat'][0]."</td>";
/* abgefragten Monate als Unix-Timestamp */
$heute_monat=$wert['Monat'][0];
$heute_jahr=$wert['jahr'][0];
$heute[$k]=mktime(0,0,0,$heute_monat,1,$heute_jahr);
$anzahl_monate=$k;
$k++;
}
$heute[$anzahl_monate]=$_SESSION[datum_ende_unix];

$k=0;
echo "</tr><tr><td>Vermittlung: Nicht angenommene Gespraeche</td><td>_</td>";
/* ENDE HEADER für Monatsdaten */

for ($i=0;$i<=$anzahl_datensaetze;$i++){
if ($unix_time[$i]==$heute[$k])
{
echo "<td>$anzahl_monat[$i]</td>";
$k++;
}
else
{
while($unix_time[$i]>$heute[$k]){
echo "<td>0</td>";
$k++;
}
echo "<td>$anzahl_monat[$i]</td>";
$k++;
}
}
if($unix_time[$anzahl_datensaetze]!=$heute[$anzahl_monate]) {
while($k<=$anzahl_monate){
echo "<td>0</td>";
$k++;}
echo "</tr>";
}

else
{
echo "<tr><td>Keine Treffer</td></tr>";
}
echo "</table>";
Wie bekomme ich sowas in eine Variable? :ugly:
Also die ganze Tabelle soll dann in einer PHP-Variablen sein.

Gast
2008-06-06, 16:09:42
http://de.php.net/manual/de/ref.outcontrol.php

Wenn du es nicht zusätzlich noch ausgeben willst dann so
ob_start();
echo "blablubb";
...
$var = ob_get_clean();
Ansonsten

ob_start();
echo "blablubb";
...
$var = ob_get_contents();
ob_end_flush();

mapel110
2008-06-06, 16:21:16
YES, das ists. Funzt wunderprächtig. Danke. :)