|
|
|
| Здравствуйте. Есть скрипт библиотеки, который разбивает txt-файл на несколько страниц по N символов на каждую. Разрешены теги <b></b> и <br/>. Вот в этом то и проблема. Часто случается так, что на одной странице стоит открывающий тег <b> и после него идёт жирный текст, а закрывающий тег </b> стоит на следующей странице и соответственно текст там уже не жирный, да ещё и нарушается синтаксис. Как бы такую проблему решить? | |
|
|
|
|
|
|
|
для: Guest11
(15.08.2006 в 08:42)
| | Ставить принудительный </b> после всего текста.
А перед текстом - сравнить strpos у <b> и </b> - и если </b> встречается раньше - принудительно ставить <b> перед текстом.
Можно, кстати, и после текста - не принудительный </b>, а так же - только сравнивать надо уже strrpos. | |
|
|
|
|
|
|
|
для: Shorr Kan
(15.08.2006 в 08:47)
| | А не могли бы вы привести код, а то не совсем понятно. Мало ещё в этом соображаю. | |
|
|
|
|
|
|
|
для: Guest11
(15.08.2006 в 09:51)
| | Принцип вроде понятен, но не мог бы кто привести конкретный пример, а то что-то не получается. | |
|
|
|
|
|
|
|
для: Guest11
(17.08.2006 в 01:08)
| | Имеется ввиду примерно такой скрипт
<?php
$text = 'df sdfd fdsfdf dfdf df </b> dfd sdfsdf sdf dfds<b> dfsd sdf dsf ds';
// Проверяем нет ли не открытого тэга в начале
$open_pos = strpos($text, "<b>");
$close_pos = strpos($text, "</b>");
if($open_pos > $close_pos) $text = "<b>".$text;
// Проверяем нет ли не закрытого тэга в конце
$open_pos = strrpos($text, "<b>");
$close_pos = strrpos($text, "</b>");
if($open_pos > $close_pos) $text = $text."</b>";
echo $text;
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(17.08.2006 в 11:55)
| | Всё так и сделал, но что-то безрезультатно. Может, я не туда вставил этот кусок кода? Если не трудно, посмотрите, пожалуйста. http://rus.wen.ru/read.txt | |
|
|
|
|
|
|
|
для: Guest11
(19.08.2006 в 18:58)
| | в первом сравнении наверное знак больше ">" стоит заменить на знак меньше "<" (код, приведённый cheops'ом) | |
|
|
|
|
|
|
|
для: BAHO
(19.08.2006 в 19:13)
| | Результат немного изменился, но не то, что мне нужно. Т.е. первая страница стала вся написана жирным шрифтом, хотя закрывающий тег </b> стоит где-то в середине. А в остальном, всё осталось без изменений: на одной странице текст жирный, а на другой (где стоит закрывающий тег </b>) - нет. | |
|
|
|
|
|
|
|
для: Guest11
(19.08.2006 в 21:24)
| | Извиняюсь за назойливость, но для меня этот вопрос ещё актуален. :) | |
|
|
|
|
|
|
|
для: Guest11
(21.08.2006 в 17:05)
| | Да, похоже не туда просто код вставили ... знак заменять не нужно было ...
$text здесь страница текста, а не весь текст .. ($unzipped_text, как я понял, это весь текст)
куда вставлять в ваш код, я честно говоря не понял =) | |
|
|
|
|
|
|
|
для: Guest11
(19.08.2006 в 18:58)
| | В какой строке у вас происходит разбивка текста? | |
|
|
|
|
|
|
|
для: cheops
(22.08.2006 в 12:44)
| | Вроде с 55-ой строки начинается разбивка. Но если для вас будет удобнее, я бы мог пронумеровать строки. | |
|
|
|