Подскажите, пожалуйста, с помощью какой функции можно обрезать текст таким образом, чтобы выводились, например, первые 100 знаков, но при этом последнее слово не разрезалось, если оно выходит за границы 100 знаков.
PHP: <?php function my_substr( $text, $symbols = 100) { $symbols = (int)$symbols; $pos = strpos( $text, ' ', $symbols); return substr( $text, 0, $symbols + (int)$pos); } echo my_substr( 'Мой длинный текст...'); ?>
neverlose Показывает вот такую ошибку в строке Код (Text): $pos = strpos( $text, ' ', $symbols); С чем это может быть связано?
Значит строка меньше 100 символов. PHP: <?php function my_substr( $text, $symbols = 100) { $symbols = (int)$symbols; if( strlen( $text) <= $symbols) return $text; $pos = strpos( $text, ' ', $symbols); return substr( $text, 0, $symbols + (int)$pos); } echo my_substr( 'Мой длинный текст...'); ?>
Там разные тексты у меня выводятся - одни больше 100 символов, другие - меньше. neverlose Режет все равно последнее слово. Будьте добры, посмотрите еще код в предыдущем посте, может там где ошибка. Или там всё правильно?
Да, есть 1. PHP: <?php function my_substr( $text, $symbols = 100) { $symbols = (int)$symbols; if( strlen( $text) <= $symbols) return $text; $pos = strpos( $text, ' ', $symbols); return substr( $text, 0, (int)$pos); } ?>
Спасибо, neverlose! Вставил Ваш пример в свой проект, теперь все показывает как надо. Дописал в силу пока еще слабых познаний в PHP еще кусочек, чтобы выводилась ссылка на полную версию при кол-ве символов >100 PHP: <?php $length = strlen(my_substr($text); if($length <= 100) echo my_substr($text); else echo my_substr($text)." <a href=''>... Далее >></a>"; ?>
Привет всем! Такая проблема: много прог работало на рнр4 и все было нормально, сменил комп - поставил рнр5, прописал путь системы в Path - все равно ничего и старого не пашет( можно ли на одном компе использовать рнр5 и рнр4: например рнр5 на апачи а рнр4 на другом сервере, что надо сделать с php.ini, вобщем подскажите плиз как сделать. Думаю это есть у многих.
php4 скрипты поддерживаются в php5, а вот обратно - нет. Видимо у Вас другая проблема, создайте новую тему её с подробным описанием.
Многие скрипты, писавшиеся на РНР 4, ориентированы на работу со включенными директивами register_globals и register_long_arrays. Кроме того многие инноваторы того времени в своих скриптах использовали ООП, с чем лично я сталкивался. Клонирование объектов в РНР 4 в противопоставление передаче по ссылке в РНР 4 создавало проблемы при портрировании, правда в единичных случаях. Поэтому либо подгонять конфигурацию РНР 5 под скрипты, ориентированные на РНР 4, либо ставить две версии с разными параметрами.
А как это сделать? и как система будет понимать php.ini? Хотелось бы просто иметь 2 сервера: Апачи с рнр5 и любой другой (есть маленький, легко настраиваемый) с рнр4
возможно, человек не разобрался со всей сложностью работы с мультибайтными строками, поэтому решил изобрести велосипед с квадратными колесами. ехать оно едет, но тяжко и недалеко.