Autor | Zpráva | ||
---|---|---|---|
Pedroo Profil * |
#1 · Zasláno: 15. 3. 2010, 22:16:14
Dobrý večer,
Mám menší problém s funkčností funkce pro spárování neukončených HTML tagů. Příklad: ->Mělo by ukončit neukončený HTML tag <b> <b>Lorem</b> <b>ipsum. Zkusil jsem použít následující funkci: <?php function pair_tag($string) { $tags = Array('em','i','b','strong','div','span','p'); //array of tags we will keep paired, you may add another foreach($tags as $tag) { $opentag = substr_count($string, '<'.$tag); // I don't put > in the opentag in case they may have an attribute $closetag = substr_count($string, '</'.$tag.'>'); if($opentag !== $closetag) { $return .= str_repeat('</'.$tag.'>', ($opentag-$closetag)); } } return $return; } echo pair_tag('<b>Lorem</b> <b>ipsum.'); ?> Ale nevypíše to prozměnu vůbec nic. |
||
SwimX Profil |
#2 · Zasláno: 15. 3. 2010, 22:28:39
Pedroo:
mě to vypíše to co má : </b>
zřejmě jsi chtěl: return $return; return $string.$return; |
||
mattyZEM Profil |
#3 · Zasláno: 16. 3. 2010, 06:52:25 · Upravil/a: mattyZEM
Udělal bych to jinak...
<?php $unclosed=$opentags-$closetags; for($i=0;$i<$unclosed;$i++) { $prom.='</'.$tag.'>'; } ?> |
||
SwimX Profil |
#4 · Zasláno: 16. 3. 2010, 11:32:15
mattyZEM:
a proč? Výsledek bude stejný. navíc to neřeší Pedrůův problém, že mu funkce vrací pouze koncové taky, takže to nevypíše "nic". |
||
Pedroo Profil * |
#5 · Zasláno: 16. 3. 2010, 15:36:58
SwimX:
Děkuji, nyní už to vypisuje správně. |
||
Časová prodleva: 14 let
|
0