Hallo,
habe eine Zeichenkette, die ungefähr so aussieht
Es handelt sich dabei um Informationen zu Bildern. Start- und Endpunkte eines Bildes sind die geschweiften Klammern. Innerhalb einer Bildinformation sind die einzelnen Infos mittels "|" von einander getrennt. Die Infos müssen allerdings nicht zwangsläufig gesetzt werden, so dass auch 2 oder mehr "|" aufeinander folgen können.
Ziel soll es sein, die einzelnen Werte auflisten zu können.
Ich versuche sie zunächst aufzuspalten:
Hier treten die ersten beide Problem auf... Zum einen frisst das Skript die 2. geschweifte Klammer. Zum anderen erzeugt er als Letztes einen leeren Array-Teil.
Weiter geht's mit der Auflistung:
Der "w"-Operator unterdrückt Sonderzeichen, wie das "/", was er jedoch nicht soll. Ich weiß keine Möglichkeit ihn so zu modifizieren, dass er auch einen "/" oder ein "-" zulässt, bzw. an welcher Stelle ich das "/" und das "-" maskieren kann.
Weiß jemand Rat? 1000 Dank im vorraus... Quäle mich seit ca. 6h damit rum...
habe eine Zeichenkette, die ungefähr so aussieht
PHP:
{38|canvas|40x40||Farbe|1}{40|Foto-Tasse|||S/W|1}{39|photo|24x30|matt|S/W|1}
Es handelt sich dabei um Informationen zu Bildern. Start- und Endpunkte eines Bildes sind die geschweiften Klammern. Innerhalb einer Bildinformation sind die einzelnen Infos mittels "|" von einander getrennt. Die Infos müssen allerdings nicht zwangsläufig gesetzt werden, so dass auch 2 oder mehr "|" aufeinander folgen können.
Ziel soll es sein, die einzelnen Werte auflisten zu können.
Ich versuche sie zunächst aufzuspalten:
PHP:
$images = preg_split('/{*}/i', $result['images']);
Weiter geht's mit der Auflistung:
PHP:
for ($x = 0; $x < sizeof($images); ++$x) {
preg_match('/(?P<image>\w*)\|(?P<type>\w*)\|(?P<size>\w*)\|(?P<paper>\w*)\|(?P<colour>\w*)\|(?P<quantity>\d+)/', current($images), $match);
$list .= "<tr>";
$list .= "<td style=\"padding: 3px 0;\">". $match[quantity] ."x</td>";
$list .= "<td>". $match[image] ."</td>";
$list .= "<td>". $match[type] .", ". $match[size] .", ". $match[paper] ."</td>";
$list .= "<td>". $match[colour] ."</td>";
$list .= "</tr>";
next($images);
}
Der "w"-Operator unterdrückt Sonderzeichen, wie das "/", was er jedoch nicht soll. Ich weiß keine Möglichkeit ihn so zu modifizieren, dass er auch einen "/" oder ein "-" zulässt, bzw. an welcher Stelle ich das "/" und das "-" maskieren kann.
Weiß jemand Rat? 1000 Dank im vorraus... Quäle mich seit ca. 6h damit rum...