Обработка текста

serg1k

Новичок
Обработка текста

Вообщем есть текст. После 1000-го символа нужно вставить тег <!--more-->. Но так чтобы оставшийся текст шел дальше после вставки.

Я пробовал так:
PHP:
$content = "Тут мой текст.";
$max_char = "1000";

if ((strlen($content)>$max_char) && ($espacio = strpos($content, " ", $max_char ))) {
        $content = substr($content, 0, $espacio);
        $content = $content."<!--more-->";
        echo $content;
Но в этом случае обрезается все после <!--more-->. Помогите пожалуйста!
 

aleks_raiden

Новичок
а что, ручками на бумаге алгоритм сначала расписать слабо?

1. Определить, есть ли в тексте больш 1000 символов.
2. если Да, то в переменную А вставить первые 1000 символов, во вторую переменную В - остальное.
3. Добавить к переменной А что нужно.
4. Слить переменную А (с вставленным что вам нужно), с переменной В.

ну примерно так, это сразу такое "тупое решение".
 

serg1k

Новичок
Алгоритм понятен, а технически как разграничить на A и B?
 

serg1k

Новичок
И как substr_replace поможет мне разделить текст на 2 части?
 

WP

^_^
Мазгами пашевели, дарагой.
PHP:
$a = '1234567890';
echo substr_replace($a,'text',5,0);
//12345text67890
 

serg1k

Новичок
Тупо, но работает...

PHP:
$content = "Тут мой текст.";
$max_char = "1000"; 

if ((strlen($content)>$max_char) && ($espacio = strpos($content, " ", $max_char ))) { 
	$content_start = substr($content, 0, $espacio);
	$content_end = str_replace($contentstart, "", $content);

        $content = $content_start."<!--more-->".$content_end; 
        echo $content;
}
 

phprus

Moderator
Команда форума
serg1k
Изобретать велосипеды вредно, особенно в случае если есть стандартная функция substr_replace которая делает то, что тебе надо. Как ее использовать тебе уже написал WP.

$max_char = "1000";
Это что за код? У тебя что в $max_char? Число? Тогда почему оно в кавычки заключено?
 

serg1k

Новичок
Не думаю, что в PHP будет играть роль, заключил ли я в кавычки число 1000 или нет. Да, это число. Но один фиг, и так и так будет работать. Никакой разницы для PHP нет.
 

WP

^_^
Как это? Есть string, а есть int. Другое дело что когда ты пытаешься работать со строкой как с числом, PHP проводит строку к числу.
 

serg1k

Новичок
Ну я это и имел ввиду, это не будет считаться за ошибку и не стоит акцентировать на этом внимание.
 

Фанат

oncle terrible
Команда форума
serg1k
не "один фиг", а "прошу прощения, господин сержант, впредь не повторится!"

Хотя что требовать от человека, который не сообразил сделать substr два раза - получив конец строки точно так же, как и начало.
 
Сверху