Mailinglisten-Archive |
ANGEL Harald wrote: > > Sebastian Mendel schrieb: >> der oder-Operand '|' müsste in Klammern einschließlich der zu suchenden Strings, >> '#\(?:[Bild:([0-9]+)\]|\[Bild:([0-9]+),([0-9]+)\])#'; > > Hallo Sebastian, danke noch mal für deine Hilfe und sry, weil ich ein so altes Thema noch mal aufgreife, aber: > Das mit den Klammern hab ich verstanden, aber deine "vereinfachte" Form nicht ganz: >> '#\[Bild:([0-9]+)(?:,([0-9]+))?\]#'; > > Ich hab jetzt nämlich beim editieren das gleiche Problem: > Der Tag kann diese 4 Aussehen haben: > <img src='bild.jpg' id='21' /> > <img src='bild.jpg' id='21' style='width:100px;' /> > <img src='bild.jpg' id='21' style='height:200px;' /> > <img src='bild.jpg' id='21' style='width:100px;height:200px;' /> > > Ich hab da jetzt einen mir scheint ziemlich umständlichen weg: > > $search = "#<img src='(.*)' id='([0-9]+)' style='(?:width:([0-9]+)px;|height:([0-9]+)px;|width:([0-9]+)px;height:([0-9]+)px;)' />#"; > > Das funktioniert zwar, aber die weite und höhe steht dann immer an unterschiedlichen Stellen im Array. > Kann man das hübscher hinbekommen? Schöner schneller und toller wäre so: <?php $qt =" <root> <img src='bild.jpg' id='21' /> <img src='bild.jpg' id='21' style='width:100px;' /> <img src='bild.jpg' id='21' style='height:200px;' /> <img src='bild.jpg' id='21' style='width:100px;height:200px;' /> </root> "; function startElement($parser, $name, $attrs) { if ($name !='img') return; print_r($attrs); } function endElement($parser, $name) { //do nothing :-) } $xml_parser = xml_parser_create(); xml_set_element_handler($xml_parser, "startElement", "endElement"); xml_parser_set_option($xml_parser, XML_OPTION_CASE_FOLDING, 0); if (!xml_parse($xml_parser, $qt, true)) die(sprintf("XML error: %s at line %d", xml_error_string(xml_get_error_code($xml_parser)), xml_get_current_line_number($xml_parser))); xml_parser_free($xml_parser); ?> setzt lediglich vorraus, dass dein qt valides xml ist... Bei dem Regex müsstest du fürchte ich damit leben, dass die an verschiedenen Stellen im Array sind... > > Danke! > Harald Yannik
php::bar PHP Wiki - Listenarchive