Заметил, что substr закрывает незакрытые теги. Например, в этом случае:
$text = '<p>Text</p>';
$text = substr($text, 0, 5);
Переменная $text будет содержать в себе <p>Te</p>. А в этом:
$text = 'O<p>Text</p>';
$text = substr($text, 0, 3);
Переменная $text будет содержать O. То есть, получается, что если есть открытый тег, то он закрывается, а если есть только кусок тега, то он будет удален.
Является ли это документированной особенностью функции?
В комментарии писать будет неудобно, сюда - неправильно, но все таки:
<?php
$text = '<p>Text</p>';
$text = substr($text, 0, 5);
var_dump($text);
Результат: string(5) "<p>Te"
Говорю же - показалось
PS. PHP 5.4.45, PHP 5.2.17, PHP 4.3.11
Продвижение своими сайтами как стратегия роста и независимости