Ваши данные не содержат фактических ’
, они содержат строковое представление объекта ’
. Если вы хотите, чтобы mb_strimwidth()
заботился об этом, вам необходимо преобразовать его обратно из представления сущности. Или, в идеале, предпринять шаги, чтобы убедиться, что у вас нет неожиданных представлений сущностей в ваших исходных данных. [См .: UTF-8 на всем пути до ]
$input = "This is a test title to show you how the apostrophe was being cut in half ’ oh noes";
var_dump(
$input,
mb_strimwidth($input, 0, 78),
$decoded = html_entity_decode($input),
mb_strimwidth($decoded, 0, 78)
);
Выход:
string(89) "This is a test title to show you how the apostrophe was being cut in half ’ oh noes"
string(78) "This is a test title to show you how the apostrophe was being cut in half R"
string(85) "This is a test title to show you how the apostrophe was being cut in half ’ oh noes"
string(80) "This is a test title to show you how the apostrophe was being cut in half ’ oh"