Цитата:
Сообщение от Tod
А с помощью там какого-то HTMLparser ничего сделать нельзя? может как-то тэги поубирать из текста просто... ? или точно нет?))
Если свою функцию, то может пример наведете как что куда подцепить? (если не слочно)
|
PHP код:
// Correction to long lines of HTML code
page.includeLibs.user_textWrap = fileadmin/templates/design/user_textWrap.php
page.stdWrap.preUserFunc = user_textWrap
PHP код:
<?
//
// see http://ru.php.net/manual/en/function.wordwrap.php
//
function user_textWrap($tstr,$conf ) {
$len = 75;
$br = "\r\n";
$strs = explode($br,$tstr);
$retstr = "";
foreach ($strs as $str) {
$str=trim($str);
if (strlen($str)>75)
$retstr .= better_wordwrap($str,75,"\r\n") . $br;
else $retstr .=$str . $br;
}
/*
$strs = explode($br,$retstr);
$retstr = "";
$j=0;
foreach ($strs as $str) {
if (strlen($str)>75)
$retstr .= wrap_tags($str) . $br;
//$retstr .=$str . $br;
//$retstr .=$str . $br;
else
$retstr .=$str . $br;
$j++;
}
//echo $j;
*/
return $retstr;
}
function wrap_tags($str) {
$i=0;
$tag_close = '>';
$str_new='';
$str_remains=$str;
while (strlen($str_remains) > 90) {
//echo $i."<br>". htmlspecialchars($str_remains)."<br><br>";
$pos = strpos($str_remains, $tag_close, 75); //
$str_new .= substr($str_remains,0,$pos+1)."\r\n";
//echo "<br>". htmlspecialchars($str_new)."<br><br><br>";
$str_remains = substr($str_remains,$pos+1,strlen($str_remains));
$i++;
}
$str_new .=$str_remains;
return $str_new;
}
function better_wordwrap($str,$cols,$cut){
$tag_open = '<';
$tag_close = '>';
$count = 0;
$in_tag = 0;
$str_len = strlen($str);
$segment_width = 0;
for ($i=1 ; $i<=$str_len ; $i++){
if ($str[$i] == $tag_open) {
$in_tag++;
} elseif ($str[$i] == $tag_close) {
if ($in_tag > 0) {
$in_tag--;
}
} else {
if ($in_tag == 0) {
$segment_width++;
if (($segment_width > $cols) && ($str[$i] == " ")) {
$str = substr($str,0,$i).$cut.substr($str,$i+1,$str_len-1);
$i += strlen($cut);
$str_len = strlen($str);
$segment_width = 0;
}
}
}
}
return $str;
}
?>