Wert in Variable schreiben, abfragen, ausgeben
Moin Developer,
ich hab gerade ein Problem, mit einem Wert, der aus Magento kommt, den ich in eine Variabel schreiben und in einer Bedingung abfragen und ausgegeben muss.
Das ganze sieht so aus:
der untere Wert, wird zweimal in eine Textdatei geschrieben, die aus Magento kommt.
Die Textdatei enthält zwei Spalten in denen der untere Block jeweils einmal drinsteht.
a:1:{i:0;s:1083:"<table style="width: 390px; height: 154px;" border="0" cellspacing="0"><tbody><tr><td colspan="2" width=" xxxx %">LAND</td></tr><tr><td style="background-color: #ddd;" width=" xxxx %">bis xxxxndash;</td><td style="background-color: #ddd;" align="right" width=" xxxx %"> xxxx %</td></tr><tr><td width=" xxxx %">bis xxxx,–</td><td align="right" width=" xxxx %"> xxxx %</td></tr><tr><td style="background-color: #ddd;" width=" xxxx %">bis xxxx,–</td><td style="background-color: #ddd;" align="right" width=" xxxx %"> xxxx %</td></tr><tr><td width=" xxxx %">bis xxxx –</td><td align="right" width=" xxxx %"> xxxx %</td></tr><tr><td style="background-color: #ddd;" width=" xxxx %">bis xxxx,–</td><td style="background-color: #ddd;" align="right" width=" xxxx %"> xxxx %</td></tr><tr><td width=" xxxx %">bis xxxx –</td><td align="right" width="18%">5%</td></tr><tr><td style="background-color: #ddd;" width=" xxxx %">ab xxxx –</td><td style="background-color: #ddd;" align="right" width=" xxxx %"> xxxx </td></tr></tbody></table>";}
Ich möchte diesen Wert jetzt in eine Variable schreiben, ausgeben und in einer Bedingungsschleife abfragen und einen anderen Wert schreiben.
Ich habe es mit dieser Syntax versucht, aber offensichtlich is das die falsche Schreibweise, denn das Ergebniss ist eine Blankpage, wenn ich das Script auführe und die IF-Condition funktioniert natürlich auch nicht:
ich habe auch versucht, den Wert direkt aus der $col[2] abzufragen,
auch dass funktioniert nicht.
Ich bin noch ein Rookie, hat mir jemand eine Idee, wie die Syntax richtig geschrieben wird?
Besten Dank schon mal im Voraus für Eure Tipps
Greetz
ich hab gerade ein Problem, mit einem Wert, der aus Magento kommt, den ich in eine Variabel schreiben und in einer Bedingung abfragen und ausgegeben muss.
Das ganze sieht so aus:
der untere Wert, wird zweimal in eine Textdatei geschrieben, die aus Magento kommt.
Die Textdatei enthält zwei Spalten in denen der untere Block jeweils einmal drinsteht.
a:1:{i:0;s:1083:"<table style="width: 390px; height: 154px;" border="0" cellspacing="0"><tbody><tr><td colspan="2" width=" xxxx %">LAND</td></tr><tr><td style="background-color: #ddd;" width=" xxxx %">bis xxxxndash;</td><td style="background-color: #ddd;" align="right" width=" xxxx %"> xxxx %</td></tr><tr><td width=" xxxx %">bis xxxx,–</td><td align="right" width=" xxxx %"> xxxx %</td></tr><tr><td style="background-color: #ddd;" width=" xxxx %">bis xxxx,–</td><td style="background-color: #ddd;" align="right" width=" xxxx %"> xxxx %</td></tr><tr><td width=" xxxx %">bis xxxx –</td><td align="right" width=" xxxx %"> xxxx %</td></tr><tr><td style="background-color: #ddd;" width=" xxxx %">bis xxxx,–</td><td style="background-color: #ddd;" align="right" width=" xxxx %"> xxxx %</td></tr><tr><td width=" xxxx %">bis xxxx –</td><td align="right" width="18%">5%</td></tr><tr><td style="background-color: #ddd;" width=" xxxx %">ab xxxx –</td><td style="background-color: #ddd;" align="right" width=" xxxx %"> xxxx </td></tr></tbody></table>";}
Ich möchte diesen Wert jetzt in eine Variable schreiben, ausgeben und in einer Bedingungsschleife abfragen und einen anderen Wert schreiben.
Ich habe es mit dieser Syntax versucht, aber offensichtlich is das die falsche Schreibweise, denn das Ergebniss ist eine Blankpage, wenn ich das Script auführe und die IF-Condition funktioniert natürlich auch nicht:
<?php
$table = 'a:1:{i:0;s:1083:"<table style="width: 390px; height: 154px;" border="0" cellspacing="0"><tbody><tr><td colspan="2" width=" xxxx %">LAND</td></tr><tr><td style="background-color: #ddd;" width=" xxxx %">bis xxxxndash;</td><td style="background-color: #ddd;" align="right" width=" xxxx %"> xxxx %</td></tr><tr><td width=" xxxx %">bis xxxx,–</td><td align="right" width=" xxxx %"> xxxx %</td></tr><tr><td style="background-color: #ddd;" width=" xxxx %">bis xxxx,–</td><td style="background-color: #ddd;" align="right" width=" xxxx %"> xxxx %</td></tr><tr><td width=" xxxx %">bis xxxx –</td><td align="right" width=" xxxx %"> xxxx %</td></tr><tr><td style="background-color: #ddd;" width=" xxxx %">bis xxxx,–</td><td style="background-color: #ddd;" align="right" width=" xxxx %"> xxxx %</td></tr><tr><td width=" xxxx %">bis xxxx –</td><td align="right" width="18%">5%</td></tr><tr><td style="background-color: #ddd;" width=" xxxx %">ab xxxx –</td><td style="background-color: #ddd;" align="right" width=" xxxx %"> xxxx </td></tr></tbody></table>";}';
echo $table; (funktioniert schon nicht)
if ($col[2] = $table) $col[2] = '1';
else $col[2] = 0;
echo $col[2]
?>
ich habe auch versucht, den Wert direkt aus der $col[2] abzufragen,
<?php
echo $table; (funktioniert schon nicht)
if ($col[2] = 'a:1:{i:0;s:1083:"<table style="width: 390px; height: 154px;" border="0" cellspacing="0"><tbody><tr><td colspan="2" width=" xxxx %">LAND</td></tr><tr><td style="background-color: #ddd;" width=" xxxx %">bis xxxxndash;</td><td style="background-color: #ddd;" align="right" width=" xxxx %"> xxxx %</td></tr><tr><td width=" xxxx %">bis xxxx,–</td><td align="right" width=" xxxx %"> xxxx %</td></tr><tr><td style="background-color: #ddd;" width=" xxxx %">bis xxxx,–</td><td style="background-color: #ddd;" align="right" width=" xxxx %"> xxxx %</td></tr><tr><td width=" xxxx %">bis xxxx –</td><td align="right" width=" xxxx %"> xxxx %</td></tr><tr><td style="background-color: #ddd;" width=" xxxx %">bis xxxx,–</td><td style="background-color: #ddd;" align="right" width=" xxxx %"> xxxx %</td></tr><tr><td width=" xxxx %">bis xxxx –</td><td align="right" width="18%">5%</td></tr><tr><td style="background-color: #ddd;" width=" xxxx %">ab xxxx –</td><td style="background-color: #ddd;" align="right" width=" xxxx %"> xxxx </td></tr></tbody></table>";}')
$col[2] = '1';
else $col[2] = 0;
echo $col[2]
?>
auch dass funktioniert nicht.
Ich bin noch ein Rookie, hat mir jemand eine Idee, wie die Syntax richtig geschrieben wird?
Besten Dank schon mal im Voraus für Eure Tipps
Greetz
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 356496
Url: https://administrator.de/contentid/356496
Ausgedruckt am: 23.11.2024 um 05:11 Uhr
4 Kommentare
Neuester Kommentar
<?php
$string = 'a:1:{i:0;s:1083:"<table style="width: 390px; height: 154px;" border="0" cellspacing="0"><tbody><tr><td colspan="2" width=" xxxx %">LAND</td></tr><tr><td style="background-color: #ddd;" width=" xxxx %">bis xxxxndash;</td><td style="background-color: #ddd;" align="right" width=" xxxx %"> xxxx %</td></tr><tr><td width=" xxxx %">bis xxxx,–</td><td align="right" width=" xxxx %"> xxxx %</td></tr><tr><td style="background-color: #ddd;" width=" xxxx %">bis xxxx,–</td><td style="background-color: #ddd;" align="right" width=" xxxx %"> xxxx %</td></tr><tr><td width=" xxxx %">bis xxxx –</td><td align="right" width=" xxxx %"> xxxx %</td></tr><tr><td style="background-color: #ddd;" width=" xxxx %">bis xxxx,–</td><td style="background-color: #ddd;" align="right" width=" xxxx %"> xxxx %</td></tr><tr><td width=" xxxx %">bis xxxx –</td><td align="right" width="18%">5%</td></tr><tr><td style="background-color: #ddd;" width=" xxxx %">ab xxxx –</td><td style="background-color: #ddd;" align="right" width=" xxxx %"> xxxx </td></tr></tbody></table>";}';
preg_match('/<table.*?<\/table>/',$string,$matches);
$dom = new DOMDocument();
$dom->loadHTML($matches);
$rows = $dom->getElementsByTagName('tr');
foreach($rows as $row){
echo $row->getElementsByTagName('td')->item(1)->nodeValue . "<br />";
}
?>
Is et aber nich . Aus dem String wird zu allererst der HTML-Teil der Tabelle mit Regular Expressions extrahiert, dann wird der String in ein DOM-Objekt geladen das sich vernünftig parsen lässt. Anschließend durchläuft eine Schleife die Tabellenzeilen (<tr>) und darin kannst du deine Daten bearbeiten wie du lustig bist. Im Beispiel wird dort für jede Zeile der Wert der zweiten Spalte ausgegeben.
In der Schleife ist jeweils $row die aktuelle Zeile, von der Row wir dann die Spalte (welche natürlich ein td tag hat) abgerufen, dies geschieht mit
Das item(<INDEX>) besagt welche Spalte der Zeile du abfragen willst (0-Basiert).
Deine If-Abfrage kannst du nun mit diesen Mitteln nun selbst zusammenbauen .
p.s. Gültige Vergleichsoperatoren sind diese
http://php.net/manual/de/language.operators.comparison.php
Wenn ich das richtig verstehe ist in dem Fall $rows meine obige variable $table, richtig?
In $rows sind alle Tabellenzeilen enthaltenIn der Schleife ist jeweils $row die aktuelle Zeile, von der Row wir dann die Spalte (welche natürlich ein td tag hat) abgerufen, dies geschieht mit
$row->getElementsByTagName('td')->item(1)->nodeValue
Deine If-Abfrage kannst du nun mit diesen Mitteln nun selbst zusammenbauen .
p.s. Gültige Vergleichsoperatoren sind diese
http://php.net/manual/de/language.operators.comparison.php