Дума по голяма от 5 символа да е прехвърли половината.....

dan4o

Registered
Може ли код ако някоя дума от мнение е по голяма от 5 символа да е прехвърли останалата част от думата на другия ред с тире:P

Примерно думата ако е 15 символа на 3 реда да е напише с тирета
 
$word = "Непротивоконститувайте";
if(mb_strlen($word, "utf8")>5){
echo substr($word, 0, 5)."<br />-".substr($word, 5, mb_strlen($word));
} else {
echo $word;
}
Тествай , написах го без да пробвам :)
 
Един мой начин :)

Код:
$word = "Непротивоконститувайте";
echo implode("<br />\n-", str_split($word, 5));

EDIT: Като се замисля има и още 1 начин.
Ако ще използваш само 1 дума можеш да ползваш и това:

Код:
$word = "Непротивоконститувайте";
echo wordwrap($word, 5, "<br />-", true);
 
Това ми върши работа само че аз ще го ползвам за текст :P И на другите думи ми слага тире :P
HunteR каза:
Един мой начин :)

Код:
$word = "Непротивоконститувайте";
echo implode("<br />\n-", str_split($word, 5));

EDIT: Като се замисля има и още 1 начин.
Ако ще използваш само 1 дума можеш да ползваш и това:

Код:
$word = "Непротивоконститувайте";
echo wordwrap($word, 5, "<br />-", true);
 
Ммм, нещо такова ли?

Код:
<?php
$string = "Думите са тук. ЕднаДългаДума"; // тук ти е изречението

function edit_string($word) // функцията, която ще преработва думите
{
    return implode("<br />\n-", str_split($word, 5)); // връщаме преработената дума :P
}

$exp = explode(" ", $string); // по този начин вкарваме в масив всяка една от думите в $string
$exp = array_map("edit_string", $exp); // чрез тази функция минаваме всеки един от елементите в масива през горната функция edit_string()
$out_string = implode(" ", $exp); // присвояваме в променливата $out_string преработеното изречение
echo $out_string; // изкарваме изречението на екрана :P
?>
 
Екста е този само 1 малко проблемче :P
1394.png

HunteR каза:
Ммм, нещо такова ли?

Код:
<?php
$string = "Думите са тук. ЕднаДългаДума"; // тук ти е изречението

function edit_string($word) // функцията, която ще преработва думите
{
    return implode("<br />\n-", str_split($word, 5)); // връщаме преработената дума :P
}

$exp = explode(" ", $string); // по този начин вкарваме в масив всяка една от думите в $string
$exp = array_map("edit_string", $exp); // чрез тази функция минаваме всеки един от елементите в масива през горната функция edit_string()
$out_string = implode(" ", $exp); // присвояваме в променливата $out_string преработеното изречение
echo $out_string; // изкарваме изречението на екрана :P
?>
 
Това най-вероятно е от Encoding-а на страницата.
Пробвай да я save като windows-1251, иначе има функции, които променят encoding-а на даден текст само.
 
Сайта е windows-1251 но извличам от БД с utf 8
HunteR каза:
Това най-вероятно е от Encoding-а на страницата.
Пробвай да я save като windows-1251, иначе има функции, които променят encoding-а на даден текст само.
 
HunteR каза:
След конекцията с базата данни имаш ли
mysql_query("SET NAMES cp1251");
да но съм с UTF 8 заради 1 ajax скрипт за автоматично презареждане
 
ммм, ми трябва да потърсиш някоя функция, която променя encoding-а на даден стринг.
Виж в php.net имаше такива.
 

Back
Горе