02. juli 2003 - 09:45
Der er
2 kommentarer og 1 løsning
Regular expressions i PHP
Jeg vil gerne bryde et HTML image tag ned så jeg kan replace alle values i attributes. Hvis jeg har et img tag med følgende attributes: <img src="img.php?19" alt="hej" width="100" height="100" border="0" vspace="5" hspace="5"> Vil jeg gerne kunne ændre det hele via preg_match og preg_replace, så jeg f.eks. kan ændre height og width. Jeg vil også kunne se hvilke attributes der er sat, altså også kunne sætte height, width, border osv. på følgende tag: <img src="img.php?19">
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
Du kan jo prøve disse 2 funktioner jeg havde liggende. Ingen garanti ... :) function tagParams($s) { if (preg_match('/^ *<([a-z0-9]+)(.*)\/?> */i',$s,$r)) { $tag=$r[1]; $params=$r[2]; preg_match_all('/([a-z0-9]+)=("[^"]*"|[0-9a-z]+)/i',$params,$r); for ($i=0;$i<count($r[1]);$i++) { $par[$r[1][$i]] = preg_replace('/^"?([^"]*)"?$/','\1',$r[2][$i]); } $res["tag"]=$tag; $res["par"]=$par; return $res; } else { die("Not a valid tag"); } } function makeTag($res) { $s = "<". $res["tag"]; foreach ($res["par"] as $key=>$val) { $s .= " $key=\"$val\""; } $s .= ">"; return $s; } $res=tagParams('<img src="img.php?19" alt="hej" width="100" height="100" border="0" vspace="5" hspace="5">'); $res["par"]["width"]=1000; $res["par"]["funny"]="not funny"; print htmlentities(makeTag($res));
Jeg kigger lige igennem og ser: 1) Ved en afsluttende .../> smides / væk 2) checked (dvs uden =noget) ignoreres - men det er jo et billede ... :) Og måske andet...
Kurser inden for grundlæggende programmering