> Но тогда, возникла проблема следующего рода: если последняя > часть новости при таком "обрезании", содержала > открывающийся html-тег, то, соответственно, под этот тег > уходило и все, что было за новостью. > То есть, по идее, при "обрезании" новости надо следить, > чтобы все теги были закрыты. Пытался сделать это > по-всякому, -- ничего не выходит. > Подскажите, пожалуйста, как это можно реализовать.
Во-первых, не совсем понятно каким образом втекстеновости затесался тег. Не должно быть там тега, нет такого слова в русском языке.
Если все же затесался, прежде чем обрезать новость, удали из нее все теги простой регуляркой.
Здравствуйте!
Возникла такая проблема. Имеется модуль новостей для сайта, который выводит на главную последние пять новостей и список новостей в архив. Естественно, если новость большая, выводить её целиком, что на главную, что в архив, не совсем рационально, поэтому я сделал банальное "обрезание" новости, примерно такое:
if (length($new) > 256) {
$new = substr($new,0,256)."...";
}
---
Но тогда, возникла проблема следующего рода: если последняя часть новости при таком "обрезании", содержала открывающийся html-тег, то, соответственно, под этот тег уходило и все, что было за новостью.
То есть, по идее, при "обрезании" новости надо следить, чтобы все теги были закрыты. Пытался сделать это по-всякому, -- ничего не выходит.
Подскажите, пожалуйста, как это можно реализовать.
Спасибо.
Не инженерное решение27.08.06 23:27 Автор: ZloyShaman <ZloyShaman> Статус: Elderman
> Но тогда, возникла проблема следующего рода: если последняя > часть новости при таком "обрезании", содержала > открывающийся html-тег, то, соответственно, под этот тег > уходило и все, что было за новостью. > То есть, по идее, при "обрезании" новости надо следить, > чтобы все теги были закрыты. Пытался сделать это > по-всякому, -- ничего не выходит. > Подскажите, пожалуйста, как это можно реализовать.
Во-первых, не совсем понятно каким образом втекстеновости затесался тег. Не должно быть там тега, нет такого слова в русском языке.
Если все же затесался, прежде чем обрезать новость, удали из нее все теги простой регуляркой.
> Спасибо. Пожалуйста :)
:). Ну, допустим, ссылка в новости.27.08.06 20:20 Автор: n0xi0uzz <Черкасов Виктор> Статус: Member
> Во-первых, не совсем понятно каким образом втексте > новости затесался тег. Не должно быть там тега, нет такого > слова в русском языке. :). Ну, допустим, ссылка в новости.
> Если все же затесался, прежде чем обрезать новость, удали > из нее все теги простой регуляркой. Да не хотелось бывсеудалять. Допустим, если в начале новости есть ссылка, то нет особого смысла её убирать, а вот если ссылка есть в месте "обрезания", -- придется.
Тогда вначале нужно определиться со списком разрешенных...27.08.06 22:30 Автор: Heller <Heller> Статус: Elderman
> > Во-первых, не совсем понятно каким образом втексте > > новости затесался тег. Не должно быть там тега, нет > такого > > слова в русском языке. > :). Ну, допустим, ссылка в новости. > > > Если все же затесался, прежде чем обрезать новость, > удали > > из нее все теги простой регуляркой. > Да не хотелось бывсеудалять. Допустим, если в начале > новости есть ссылка, то нет особого смысла её убирать, а > вот если ссылка есть в месте "обрезания", -- придется. Тогда вначале нужно определиться со списком разрешенных тегов. Если все разрешенные теги требуют наличия закрывающего тега, то проверку можно сделать достаточно просто - подсчитать открывающие и закрывающие тэги. Если их число не совпадает, удалить последние открывающие (количество взять как разность между открывающими и закрывающими). Но это подействует только в том случае, если соблюдена сложенность тегов. Если допускаются любые теги, то проблеема становится значительно сложнее и придется писать свой парсер.
Вообще задача весьма нетривиальна. Я бы все же задался вопросом: "А действительно ли так нужны теги, даже если это просто ссылки, в краткой аннотации к новости? Может быть оставить их для полной статьи"? Это вполне нормальное поведение, общепринятое по всему Нету. Ты только потеряешь время на реализацию тегов. К тому же в последнее время у пользователей закрепляется в сознании, что весь блок с кратким изложением новости является одной ссылкой. Появление внутри него сторонних ссылок введет пользователя в замешательство и посеет панику.