-4

I have a text:

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Iste mollitia similique, blanditiis quisquam suscipit optio quam culpa odit ad magni sunt officiis, recusandae deleniti alias, natus commodi sed expedita labore.

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quae distinctio atque, eos quo. Autem commodi dicta, numquam natus illum recusandae quos! Veniam nulla et temporibus necessitatibus vero recusandae tempora saepe!

How I can with php paste a symbol {{id}} after every paragraph ? I need use preg_replace?

ctwheels
  • 21,901
  • 9
  • 42
  • 77
Tatata
  • 31
  • 6

2 Answers2

0

You could use:

str_replace("\r\n\r\n", "{{id}}\r\n\r\n", $variableWithTheText)

This assumes that your paragraphs are seperated by two \r\n's

FMK
  • 1,062
  • 1
  • 14
  • 25
0

See regex in use here

(?=\n\s*\n|\z)
  • (?=\n\s*\n|\z) Positive lookahead ensuring one of the following options matches
    • \n\s*\n Matches line-feed, any number of whitespace characters, and another line-feed. The reason \n{2} or \n\n isn't used is because sometimes people accidentally add other whitespace characters like spaces and so the regex doesn't catch those locations since it's not two \n back-to-back.
    • \z Assert position at the end of the string. This matches the end of the last paragraph.

Substitution: {{id}}


See code in use here

<?php

$re = '/(?=\n\s*\n|\z)/';
$str = 'Lorem ipsum dolor sit amet, consectetur adipisicing elit. Iste mollitia similique, blanditiis quisquam suscipit optio quam culpa odit ad magni sunt officiis, recusandae deleniti alias, natus commodi sed expedita labore.

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quae distinctio atque, eos quo. Autem commodi dicta, numquam natus illum recusandae quos! Veniam nulla et temporibus necessitatibus vero recusandae tempora saepe!';
$subst = '{{id}}';

echo preg_replace($re, $subst, $str);

Result:

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Iste mollitia similique, blanditiis quisquam suscipit optio quam culpa odit ad magni sunt officiis, recusandae deleniti alias, natus commodi sed expedita labore.{{id}}

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quae distinctio atque, eos quo. Autem commodi dicta, numquam natus illum recusandae quos! Veniam nulla et temporibus necessitatibus vero recusandae tempora saepe!{{id}}

ctwheels
  • 21,901
  • 9
  • 42
  • 77
  • But in php how this be? `preg_replace('(?=\n\s*\n|\z)', $text)` ? – Tatata Mar 19 '18 at 13:41
  • @Tatata see my edit. I included code. – ctwheels Mar 19 '18 at 13:42
  • Thanks very much! – Tatata Mar 19 '18 at 13:46
  • Sorry, but if I have text with `

    ` without spaces? But paragraphs with html

    – Tatata Mar 19 '18 at 13:54
  • @Tatata in that case you should use a parser. See [H̸̡̪̯ͨ͊̽̅̾̎Ȩ̬̩̾͛ͪ̈́̀́͘ ̶̧̨̱̹̭̯ͧ̾ͬC̷̙̲̝͖ͭ̏ͥͮ͟Oͮ͏̮̪̝͍M̲̖͊̒ͪͩͬ̚̚͜Ȇ̴̟̟͙̞ͩ͌͝S̨̥̫͎̭ͯ̿̔̀ͅ](https://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags) for more information. – ctwheels Mar 19 '18 at 13:55