Revision: 12614
Updated Code
at April 17, 2009 23:15 by kossmoss
Updated Code
function closetags($text){
preg_match_all("#<([a-zA-Z]{1,50})[^>]*>#i",$text,$otags);
if(count($otags[1])>0){
$fotags=array();
$fctags=array();
foreach($otags[1] as $otag){
$otag = strtolower($otag);
if(isset($fotags[$otag]))
$fotags[$otag]++;
else
$fotags[$otag] = 1;
}
preg_match_all("#</([a-zA-Z]{1,50})#i",$text,$ctags);
foreach($ctags[1] as $ctag){
$ctag = strtolower($ctag);
if(isset($fctags[$ctag]))
$fctags[$ctag]++;
else
$fctags[$ctag] = 1;
}
$rtags = array_reverse($fotags, TRUE);
foreach ( $rtags as $tag => $cnt)
{
$fctags[$tag] = isset($fctags[$tag]) ? $fctags[$tag] : 0;
$text .= str_repeat("</".$tag.">",abs($fctags[$tag] - $cnt));
}
}
$wrong_replace = array(
'</br>' => '',
'</img>' => '',
'</hr>' => '',
'</link>' => '',
'</meta>' => ''
);
$text=strtr($text, $wrong_replace);
return $text;
}
Revision: 12613
Updated Code
at April 17, 2009 22:31 by kossmoss
Updated Code
function closetags($text){
preg_match_all("#<[^a-zA-Z>/]*([a-zA-Z]{1,50})#i",$text,$otags);
if(count($otags[1])>0){
$fotags=array();
$fctags=array();
foreach($otags[1] as $otag){
$otag = strtolower($otag);
if(isset($fotags[$otag]))
$fotags[$otag]++;
else
$fotags[$otag] = 1;
}
preg_match_all("#</([a-zA-Z]{1,50})#i",$text,$ctags);
foreach($ctags[1] as $ctag){
$ctag = strtolower($ctag);
if(isset($fctags[$ctag]))
$fctags[$ctag]++;
else
$fctags[$ctag] = 1;
}
foreach ( $fotags as $tag => $cnt)
{
$fctags[$tag] = isset($fctags[$tag]) ? $fctags[$tag] : 0;
$text .= str_repeat("</".$tag.">",abs($fctags[$tag] - $cnt));
}
}
return $text;
}
Revision: 12612
Updated Code
at March 30, 2009 23:34 by kossmoss
Updated Code
function closetags($text){
//last word cutting
$text = substr($text, 0, strrpos($text," "));
$text = preg_replace("/<[^>]*$/i", "", $text);
//tag closing
preg_match_all("/<[^a-zA-Z>\/]*([a-zA-Z]{1,50})/i",$text,$otags);
if(count($otags[0])>0){
$fotags=array();
$fctags=array();
preg_match_all("/<[ t]*\/[^a-z]*([a-z]{1,50})/i",$text,$ctags);
foreach($otags[1] as $otag){
$otag = strtolower($otag);
if(isset($fotags[$otag]))
$fotags[$otag]++;
else
$fotags[$otag] = 1;
}
foreach($ctags[1] as $ctag){
$ctag = strtolower($ctag);
if(isset($fctags[$ctag]))
$fctags[$ctag]++;
else
$fctags[$ctag] = 1;
}
while(list($tag, $cnt) = each($fotags)){
$fctags[$tag] = isset($fctags[$tag]) ? $fctags[$tag] : 0;
$text .= str_repeat("",abs($fctags[$tag] - $cnt));
}
}
return $text;
}
Revision: 12611
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at March 20, 2009 20:59 by kossmoss
Initial Code
function closetags($text){
//обрезка поÑледнего Ñлова
$text = substr($text, 0, strrpos($text," "));
$text = preg_replace("/<[^>]*$/i", "", $text);
//закрытие тегов
preg_match_all("/<[^a-zA-Z>\/]*([a-zA-Z]{1,50})/i",$text,$otags);
if(count($otags[0])>0){
$fotags=array();
$fctags=array();
preg_match_all("/<[ t]*\/[^a-z]*([a-z]{1,50})/i",$text,$ctags);
foreach($otags[1] as $otag){
$otag = strtolower($otag);
if(isset($fotags[$otag]))
$fotags[$otag]++;
else
$fotags[$otag] = 1;
}
foreach($ctags[1] as $ctag){
$ctag = strtolower($ctag);
if(isset($fctags[$ctag]))
$fctags[$ctag]++;
else
$fctags[$ctag] = 1;
}
while(list($tag, $cnt) = each($fotags)){
$fctags[$tag] = isset($fctags[$tag]) ? $fctags[$tag] : 0;
$text .= str_repeat("",abs($fctags[$tag] - $cnt));
}
}
return $text;
}
Initial URL
http://www.promoforum.ru/index.php?showtopic=12687&view=findpost&p=97701
Initial Description
closes opened tags in text piece. original code slightly modified to supress PHP warnings NOTE: need to fix the order of closing tags to get standards compliance
Initial Title
Tag closing for HTML text pieces
Initial Tags
html, text, function
Initial Language
PHP