Задать вопрос
@gh0st_d0g

Как разделить текст на 2 части php?

Ребят имеется большой текст каким образом его можно разделить на 2 части с учетом перевода строк на php?

раз раз раз разраз разраз разраз разраз разраз разраз разраз разраз разраз разраз разраз разраз разраз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз, раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз раз



два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два два



три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три



три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три три

<?php
//добавляем к тексту пробел в конце, т.к. по пробелам будет делиться текст, без этого последнее слово будет обрезаться
$desc=$sample_text." ";
//2 - на сколько делим, 0.02 - сглаживание (%)
$l=intval(strlen($desc)/2+strlen($desc)*0.02);
//убираем переводы строк
$desc=ereg_replace("[\r\n]"," ",$desc);
//делим текст
preg_match_all("/(.{1,$l})[ \n\r\t]+/",$desc,$descArray);
?>
данный вариант не работает.
  • Вопрос задан
  • 1295 просмотров
Подписаться 1 Оценить 3 комментария
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
LINKeRxUA
@LINKeRxUA
web dev
Вот набросал:
Должно розделить на 2 части.
Определить позицию обрыва строки с конца в первой части и с начала во второй.
По этому - определяем, какому блоку принадлежит часть текста что больше. Ну и соответственно делим
<?php
$text = 'aaa'.PHP_EOL.'bbbbb'.PHP_EOL.'ccccccc'.PHP_EOL.'dddd'.PHP_EOL.'eeeeeeeeeeeee'.PHP_EOL.'fff';

$length = strlen($text);
$half = (int) ($length / 2);

$part_1 = substr($text,0, $half);
$part_2 = substr($text,$half);



$eol_1 = strrpos( $part_1, PHP_EOL, 0); 			// last  position from string start of first part
$eol_2 = $half + strpos( $part_2, PHP_EOL, 0 );		// first position from string start of second part


$shift_1 = $half - $eol_1; // char shift size till middle point of first block
$shift_2 = $eol_2 - $half; // char shift size till middle point of last block
	
	if($shift_1 < $shift_2){ // PHP_EOL is closer to firts block, so larger size of block saved in second block

	    $part_1 = substr($text,0,$shift_1);
		$part_2 = substr($text,$shift_1);
	
	}else{	
		
		$part_1 = substr($text,0,$eol_1);
		$part_2 = substr($text,$eol_1);
		
	}
echo '<pre>';
var_dump( array(
	'length' 		=> $length, 
	'middle point' 	=> $half, 
	'position of EOL of first block' => $eol_1,
	'position of EOL of second block' => $half + $eol_2,
	
) );
var_dump( $part_1, $part_2 );

?>
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
IT ATLAS Москва
от 250 000 до 500 000 ₽