Пренасяне на текст

Ninjass

Registered
Здравейте, имам разни затруднения. При системата ми за коментари, някой като напише дълъг коментар излиза на 1 ред и си продължава и си продължава.... пробвах с

Код:
	$text = htmlspecialchars_decode($comment[comment]);
        $newtext = wordwrap($text, 100, "<br>", 1);

и се получи.. докато не постнах коментар с 4 емотиконки. Като го направих изнезнаха 3 емотиконки, а четвъртата се беше бъгнала и излезна половината от кода <img src="im ( примерно ). Интересувам се как да го направа такаче да не ми прецаква емотиконките и да пренася текста на нов ред. :) +1 за този, който ми помогне. Благодаря предварително :)

П.П пробвах и други кодове, разгледах темите, но там изобщо не се получи..
 
Пробвай така

PHP:
$text = htmlspecialchars_decode($comment[comment]);
$newtext = preg_replace('/(?:\r\n|[\r\n])/', '<br>', $text);
 
Предполагам, че заместваш с ББкода преди да въведеш информацията в базатас данни. За да смалиш малко дължината на текста в базата, замествай [/img\] [/img\] на изхода от базата и ги запаметявай по начина по който са въведени, а не <img src='link'></img> Така не би трябвало да ти се прецакват емотиконите, а за новия ред един </br> ще е добре да поставиш при ББкода така
$text = nl2br($text); //преобразува всички празни редове до <br /> :)
 
аз ще ти покажа как да го направиш с CSS

[css]

#textarea{
word-wrap: break-word;
}[/css]
понеже това не съм сигорен но мисля че не работи под всички браузъри

ще ти препоръчам това
[css]

#textarea{
width: daljina na tekstareata v pikseli;
}[/css]

там кадето ти е текст ареата слагаш и id
Код:
<textarea id="textarea" name="ime na tekstareata"></textarea>
 
Тази функция може да се контролира при колко символа да реже даден стринг, в момента е настроен на 40 символа (тоест може на един ред да има 40 символа).

PHP:
function utf8_wordwrap($s,$w=65,$b="\n",$c=false) {
        $s = mb_convert_encoding($s,'cp1251','UTF-8');
        $s = wordwrap($s,$w,$b,$c);
        return mb_convert_encoding($s,'UTF-8','cp1251');
    }


---------

Викаме е по следният начин:

PHP:
$texta=utf8_wordwrap($texta, 40, " ", '<br />\n');
 

Back
Горе