Con tutti quei test mi stava venendo il mal di testa![]()
Io farei qualcosa del genere
Ovviamente questo funziona solo col primo OBJECT trovato, va generalizzato per considerarli tutti usando la parte 'b' $match[a][b]codice:<?php $string = "Aliquam sed turpis metus, vel ultricies leo. Morbi nec elit neque. <hr /> [OBJECT type='SPAN' F='Courier+New,0em,bold,none,252525,ffffff,none,none,none,252525,ffffff' L='null']tanto va la gatta al largo che ci lascia lo zampino[/OBJECT_SPAN] <hr /> Ut ac scelerisque turpis. Etiam dapibus dolor sed justo placerat id mollis nisi placerat"; preg_match_all("#\[OBJECT\s+type='(.*?)'\s+F='(.*?)'\s+L='(.*?)'\](.*?)\[/OBJECT_SPAN\]#", $string, $match); # print_r($match); $css_properties = array('font-family: ', 'font-size: ', 'font-weight: ', 'font-style: ', 'color: #', 'background: #', 'text-align: ', 'text-decoration: ', 'text-transform: '); $full_match = $match[0][0]; $tag = $match[1][0]; $style = urldecode($match[2][0]); $title = urldecode($match[3][0]); $text = $match[4][0]; $css_values = split(",", $style); if ($title != 'null') { $output = "<$tag title=\"$title\" style=\""; } else { $output = "<$tag style=\""; } for ($x = 0; $x < 8; $x++) { if ($css_values[$x] != 'none') { $output .= "{$css_properties[$x]}{$css_values[$x]}; "; } } $output .= "\">$text</$tag>"; $string = str_replace($full_match, $output, $string); echo $string; ?>

Rispondi quotando