Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Разбивка txt-файла
 
 автор: Guest11   (15.08.2006 в 08:42)   письмо автору
 
 

Здравствуйте. Есть скрипт библиотеки, который разбивает txt-файл на несколько страниц по N символов на каждую. Разрешены теги <b></b> и <br/>. Вот в этом то и проблема. Часто случается так, что на одной странице стоит открывающий тег <b> и после него идёт жирный текст, а закрывающий тег </b> стоит на следующей странице и соответственно текст там уже не жирный, да ещё и нарушается синтаксис. Как бы такую проблему решить?

   
 
 автор: Shorr Kan   (15.08.2006 в 08:47)   письмо автору
 
   для: Guest11   (15.08.2006 в 08:42)
 

Ставить принудительный </b> после всего текста.
А перед текстом - сравнить strpos у <b> и </b> - и если </b> встречается раньше - принудительно ставить <b> перед текстом.
Можно, кстати, и после текста - не принудительный </b>, а так же - только сравнивать надо уже strrpos.

   
 
 автор: Guest11   (15.08.2006 в 09:51)   письмо автору
 
   для: Shorr Kan   (15.08.2006 в 08:47)
 

А не могли бы вы привести код, а то не совсем понятно. Мало ещё в этом соображаю.

   
 
 автор: Guest11   (17.08.2006 в 01:08)   письмо автору
 
   для: Guest11   (15.08.2006 в 09:51)
 

Принцип вроде понятен, но не мог бы кто привести конкретный пример, а то что-то не получается.

   
 
 автор: cheops   (17.08.2006 в 11:55)   письмо автору
 
   для: 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;
?>

   
 
 автор: Guest11   (19.08.2006 в 18:58)   письмо автору
 
   для: cheops   (17.08.2006 в 11:55)
 

Всё так и сделал, но что-то безрезультатно. Может, я не туда вставил этот кусок кода? Если не трудно, посмотрите, пожалуйста. http://rus.wen.ru/read.txt

   
 
 автор: BAHO   (19.08.2006 в 19:13)   письмо автору
 
   для: Guest11   (19.08.2006 в 18:58)
 

в первом сравнении наверное знак больше ">" стоит заменить на знак меньше "<" (код, приведённый cheops'ом)

   
 
 автор: Guest11   (19.08.2006 в 21:24)   письмо автору
 
   для: BAHO   (19.08.2006 в 19:13)
 

Результат немного изменился, но не то, что мне нужно. Т.е. первая страница стала вся написана жирным шрифтом, хотя закрывающий тег </b> стоит где-то в середине. А в остальном, всё осталось без изменений: на одной странице текст жирный, а на другой (где стоит закрывающий тег </b>) - нет.

   
 
 автор: Guest11   (21.08.2006 в 17:05)   письмо автору
 
   для: Guest11   (19.08.2006 в 21:24)
 

Извиняюсь за назойливость, но для меня этот вопрос ещё актуален. :)

   
 
 автор: kasmanaft   (21.08.2006 в 17:24)   письмо автору
 
   для: Guest11   (21.08.2006 в 17:05)
 

Да, похоже не туда просто код вставили ... знак заменять не нужно было ...
$text здесь страница текста, а не весь текст .. ($unzipped_text, как я понял, это весь текст)

куда вставлять в ваш код, я честно говоря не понял =)

   
 
 автор: cheops   (22.08.2006 в 12:44)   письмо автору
 
   для: Guest11   (19.08.2006 в 18:58)
 

В какой строке у вас происходит разбивка текста?

   
 
 автор: Guest11   (27.08.2006 в 12:16)   письмо автору
 
   для: cheops   (22.08.2006 в 12:44)
 

Вроде с 55-ой строки начинается разбивка. Но если для вас будет удобнее, я бы мог пронумеровать строки.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования