Jump to content
  • 0

Перенос строки по указанному количеству символов


kilogram
 Share

Question

Есть текст: Привет малыш! Как дела?

Нужно перенести слово "малыш" между слловами "Как дела?", чтоб получился в итоге текст:

Привет! Как малыш дела? Слышал что вроде есть функция wordwrap. Что-то она не срабатывает для такого дела. Или этой функцией такое не сделать, нужно один текст заменять на другой функцией str_replace или strtr, этот вариант не покатит с помощью этой функции?


<html><body>
<?php
$t = "Привет малыш! Как дела?";
echo wordwrap($t,8," ");
?>
</body></html>

  • Like 2
Link to comment
Share on other sites

9 answers to this question

Recommended Posts

  • 0


<html><body>
<?php
function cite($ourText, $maxlen=60, $prefix="> "){
$st = wordwrap($ourText,$maxlen-strlen($prefix),"\n");
$st = $prefix.str_replace("\n","\n$prefix",$st);
return $st;
}
echo '<pre>';
echo cite("Томас Джефферсон, один из авторов Декларации независимости, писал,
что «все люди созданы равными». При этом однако третий президент США всю
жизнь оставался рабовладельцем. Сейчас в Америке проходят две выставки, в
центре внимания которых – это парадоксальное расхождение между идеями
Джефферсона и его образом жизни. Наш корреспондент Джули Табо рассказывает
подробнее об экспозиции в его знаменитой усадьбе Монтиселло. Смотрите видео.",20);
echo '</pre>';
?>
</body></html>

Растолкуйте пожалуйста вот эти 2 строки:

$st = wordwrap($ourText,$maxlen-strlen($prefix),"\n");
$st = $prefix.str_replace("\n","\n$prefix",$st);

Что вот это за действие? $prefix.str_replace почему точка "."?

Что делает первая строка?

  • Like 1
Link to comment
Share on other sites

  • 0

Есть текст: Привет малыш! Как дела?

Нужно перенести слово "малыш" между слловами "Как дела?", чтоб получился в итоге текст:

...

А почему вы не используете nl2br или в тексте нет переноса?

Edited by Radiocity
  • Like 1
Link to comment
Share on other sites

  • 0

Нужно переносить конкретное слово в конкретное место или задача более широкая, типа перенести второе слово после третьего? Можно не частный случай, а общую постановку задачи увидеть? Потому что представленная в первом посте задача решается вообще без php, достаточно в процессе написания текста правильно расставить слова.

Link to comment
Share on other sites

  • 0

Растолкуйте пожалуйста вот эти 2 строки:

$st = wordwrap($ourText,$maxlen-strlen($prefix),"\n");
$st = $prefix.str_replace("\n","\n$prefix",$st);

Что вот это за действие? $prefix.str_replace почему точка "."?

Что делает первая строка?

Первая строка вставляет перенос строки через каждые ($maxlen - длина префикса) символов. Вторая подставляет в начало каждой строки сам префикс. В итоге получаются строки общей длиной $maxlen, каждая из которых начинается с префикса (имитация цитирования в текстовых емейлах).

Точка — конкатенация строк.

На моё имхо, функция далека от совершенства — логичнее разбивать не тупо по лимиту символов, а по границам слов (пробелам) в пределах лимита (через регулярки). Но для быстрого начала сойдет)

Link to comment
Share on other sites

  • 0
Эту задачу решает по идее функция str_replace. Я хотел например в тексте, одни слова переносить и вставлять между другими словами.
Слишком нечёткое условие. Как программа должна узнать что вырезать и куда вставить?
Link to comment
Share on other sites

  • 0

мне думается что нужно копать в эту сторону:


$text = 'Привет малыш! Как дела?';
$text2 = explode(' ', $text);
array_splice($text2, -1, 0, "малыш");
print_r($text2);

хотя не совсем то вышло, до конца че-то не вкурил как вообще убрать слово малыш и как его убрать без восклицательного знака, но тут наверное уже лучше будут регулярки чем explode();

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy