Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.05.2013, 14:48   #1
hon
Форумчанин
 
Регистрация: 08.06.2011
Сообщений: 693
По умолчанию Разбить текст на части с учетом слов и HTML-тегов

Имеется текст в виде одной строки.
Нужно разбить текст используя \n со следующими условиями:
  • Слово не должно рубиться пололам.
  • HTML-теги не должны рубиться пополам.
  • Максимальная длина строки 70 символов.
Пример:
Цитата:
Некоторый текст жил очень хорошо, до тех пор пока в лесу его не встретила лиса.
Должно получиться:
Цитата:
Некоторый текст жил очень хорошо, до тех пор пока в лесу его не\nвстретила лиса.
Также HTML-теги не должны рубиться. Как это можно реализовать?
hon вне форума Ответить с цитированием
Старый 25.05.2013, 18:51   #2
victor5133
Форумчанин
 
Регистрация: 05.10.2010
Сообщений: 107
По умолчанию

Код:
<?php
$kol_char=0;
$k=0;
for($i=0;$i<count($text);$i++)
	{
	if ($text[$i]!=' ') 
		{
		$kol_char++;
		$new_text[$k]=$text[$i];
		$k++;
		}
		else
		{
		if ($kol_char>=70) 
			{
			$new_text[$k]=$text[$i];
			$k++;
			$new_text[$k]='\';
			$k++;
			$new_text[$k]='n';
			$k++;
			$kol_char=0;
			}
		} 
	}
echo $new_text;
?>
Попробуй так.
victor5133 вне форума Ответить с цитированием
Старый 25.05.2013, 19:15   #3
hon
Форумчанин
 
Регистрация: 08.06.2011
Сообщений: 693
По умолчанию

Не работает.
Подправил на

PHP код:
<?
$kol_char
=0;
$k=0;
for(
$i=0;$i<count($text);$i++)
    {
    if (
$text[$i]!=' '
        {
        
$kol_char++;
        
$new_text[$k]=$text[$i];
        
$k++;
        }
        else
        {
        if (
$kol_char>=70
            {
            
$new_text[$k]=$text[$i];
            
$k++;
            
$new_text[$k]='\\'// ПОДПРАВИЛ ТУТ
            
$k++;
            
$new_text[$k]='n';
            
$k++;
            
$kol_char=0;
            }
        } 
    }
echo 
$new_text;
?>
Выдает "Array".
hon вне форума Ответить с цитированием
Старый 25.05.2013, 19:59   #4
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

wordwrap – в комментариях есть хорошие примеры решений подобных задач (работа с HTML-тегами, юникод и прочие возможные нюансы).
Andkorol вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Разбить число на части Surik Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 8 23.02.2011 19:50
Как получить текст HTML Документа из TWebBrowser без тегов Marsel737 Общие вопросы Delphi 10 28.11.2009 08:47
Разбить строку на 2 части 7KByte Общие вопросы C/C++ 6 31.05.2009 16:51
Разбить файл на 4 части borzoni Паскаль, Turbo Pascal, PascalABC.NET 7 31.05.2008 10:51
Разбить список на части fotobra Microsoft Office Excel 1 23.02.2008 03:13