Я получаю � символов, когда объединяю Codeigniter character_limiter()
с нативным PHP 100 *.Вот код, который я использую:
<?php echo character_limiter(strip_tags($block->body), 60); ?>
$block->body
- строка HTML, хранящаяся в базе данных.Я не получаю этот неожиданный вывод, если я использую только одну из функций.Это выглядит так:
Вот как выглядит HTML:
Я не сделалвставьте фактический HTML, потому что строка будет изменена путем публикации здесь, см. ниже
Вот функция Codeigniter character_limiter
:
function character_limiter($str, $n = 500, $end_char = '…')
{
if (strlen($str) < $n)
{
return $str;
}
$str = preg_replace("/\s+/", ' ', str_replace(array("\r\n", "\r", "\n"), ' ', $str));
if (strlen($str) <= $n)
{
return $str;
}
$out = "";
foreach (explode(' ', trim($str)) as $val)
{
$out .= $val.' ';
if (strlen($out) >= $n)
{
$out = trim($out);
return (strlen($out) == strlen($str)) ? $out : $out.$end_char;
}
}
}
Я понял, что там былокакой-то невидимый символ или что-то, что могло быть причиной этого, потому что, когда я вставил HTML-код в текстовый редактор, затем снова в «редактор исходного кода HTML» на изображении (это просто TinyMCE), а затем сохранил его, странные символы исчезли.
Я использую набор символов utf-8 по всей доске (везде, где это возможно).Исходные данные поступили из дампа неизвестной базы данных и были импортированы с клиентом SQL.Однако, когда я сохранил существующую строку (в CMS), ничего не изменилось.
Я не могу соединить точки между этими двумя функциями, вызывая этот вывод при совместном использовании, а я не получите символы normally как обычно.Я только вижу этот вывод при использовании:
character_limiter(strip_tags($html))
Что может быть причиной, и как я могу предотвратить это?
Примечание: Я определенно хочу использовать функцию character_limiter
или ее вариант.Это делает многоточие в конце строки, если его длина больше, чем второй параметр.Использование одного (без strip_tags
) прекрасно работает (без странных символов).
Обновление: Для тех, кто не может воспроизвести это, я разместил в сети файл SQL, который демонстрируетвопрос.Я импортирую это с MySQL Query Browser .Я получаю только этот вывод кажется , когда HTML поступает из базы данных.Вот ссылка (игнорируйте контент, это вина клиента): http://wesleymurch.com/test/test1.sql