1

Тема: substr наприкінці лишає якийсь символ.

Доброго дня, не можу згадати якою фунцією треба обгорнути substr щоб не було наприкінці знаку питання (незрозумілий символ).
http://sandbox.onlinephpfunctions.com/c … 1673985808

2

Re: substr наприкінці лишає якийсь символ.

mb_substr($product['name'], 0, 95,"UTF-8")
Подякували: koala, 221VOLT, leofun013

3 Востаннє редагувалося koala (19.01.2018 14:08:51)

Re: substr наприкінці лишає якийсь символ.

Залежить від того, що саме вам треба зробити - залишити 95 символів чи 95 байтів. Про символи вже сказали, байти відрізаються mb_strcut (параметри аналогічні, якщо довжина опиняється посеред символа, він відкидається, тобто буде не більше ніж 95 байт).
І от чого вам варто було б написати "я намагаюся зробити ..."?

Подякували: leofun011

4 Востаннє редагувалося opendoor (19.01.2018 14:13:14)

Re: substr наприкінці лишає якийсь символ.

Треба символи.

Але в мене строку не ріже
http://sandbox.onlinephpfunctions.com/c … ae96f09847

5

Re: substr наприкінці лишає якийсь символ.

Там 79 символів (на 131 байт). Ви визначіться врешті-решт, символи вам чи байти. В першому випадку - всі функції на mb_ (зокрема, mb_strlen).

Подякували: opendoor, leofun012

6 Востаннє редагувалося opendoor (19.01.2018 14:34:06)

Re: substr наприкінці лишає якийсь символ.

koala написав:

Там 79 символів (на 131 байт). Ви визначіться врешті-решт, символи вам чи байти. В першому випадку - всі функції на mb_ (зокрема, mb_strlen).

Символи я ж, написав.
Зрозумів, проблема в функции яка визначає довжину :
треба так, для майбутних поколінь ) 
$product['name']='NANOPROTECH  Супер Антидождь , салфетки (чистое стекло, 3 месяца защиты стекла)';
echo mb_strlen($product['name']) > 50 ? mb_substr($product['name'], 0, 47,"UTF-8").'...' : $product['name'];

http://sandbox.onlinephpfunctions.com/c … 281d9ee89c

Подякували: koala1

7

Re: substr наприкінці лишає якийсь символ.

Якщо чесно, це краще довірити браузеру. CSS

text-overflow:ellipsis

робить практично те саме, зате в разі зміни дизайну вам не знадобиться шукати і заново підбирати всі ці захардкоджені довжини, а більш-менш просунутий користувач зможе отримати потрібну йому інформацію, навіть якщо вона не відображається, де треба.

Подякували: opendoor, 221VOLT, Lace, leofun014

8

Re: substr наприкінці лишає якийсь символ.

koala написав:

Якщо чесно, це краще довірити браузеру. CSS

text-overflow:ellipsis

робить практично те саме, зате в разі зміни дизайну вам не знадобиться шукати і заново підбирати всі ці захардкоджені довжини, а більш-менш просунутий користувач зможе отримати потрібну йому інформацію, навіть якщо вона не відображається, де треба.

Дякую, на такий спосіб я колись в якомусь шаблоні натрапив. А text-overflow:ellipsis буду мати на увазі.