<?php
$string = 'Lorem ipsum <a href="#">dolor</a> sit amet
<div>Consectetur adipisicing elit, sed do</div>
eiusmod tempor incididunt ut labore et dolore
magna aliqua.' ;
$test = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Aliquam sagittis augue in quam mollis egestas.
Quisque elit erat, luctus sit amet pellentesque non, tempus a ipsum.
<a href="#">Aenean congue dui at nisl pulvinar porta.</a>
<strong>Proin id porttitor nisi. Curabitur sed dolor metus, a ornare eros.</strong>
<ul>
<li>Vestibulum tristique tellus eu nisl feugiat ut convallis massa dictum.</li>
<li>Vestibulum nisi est, ullamcorper eget vulputate nec, dictum vel felis.</li>
</ul>
In iaculis felis vitae justo consectetur ornare.
Ut porttitor sem in dui elementum tincidunt.
Pellentesque vel malesuada velit.
Nam at mi in ligula congue suscipit.
Aliquam a sollicitudin tellus.' ;
function add_p( $string , $delimiter = "\n " ) {
// kill it before it starts if it's not a string
die ( 'Input must be string' ) ; }
$string = explode ( $delimiter , $string ) ; $result = '' ;
foreach ( $string as $value ) {
if ( preg_match ( "/^<\\ /?div|^<\\ /?ul|^<\\ /?li|<\\ /?p/" , $value ) >= 1 ) { $result .= $value . "\n " ;
} else {
$result .= '<p>' . trim ( $value ) . '</p>' . "\n " ; }
}
return $result ;
}
echo add_p( $string ) ;
echo "\n \n " ;
echo add_p( $test ) ;
PD9waHAKCiRzdHJpbmcgPSAnTG9yZW0gaXBzdW0gPGEgaHJlZj0iIyI+ZG9sb3I8L2E+IHNpdCBhbWV0CjxkaXY+Q29uc2VjdGV0dXIgYWRpcGlzaWNpbmcgZWxpdCwgc2VkIGRvPC9kaXY+IAplaXVzbW9kIHRlbXBvciBpbmNpZGlkdW50IHV0IGxhYm9yZSBldCBkb2xvcmUgCm1hZ25hIGFsaXF1YS4nOwoKJHRlc3QgPSAnTG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdC4gCkFsaXF1YW0gc2FnaXR0aXMgYXVndWUgaW4gcXVhbSBtb2xsaXMgZWdlc3Rhcy4gClF1aXNxdWUgZWxpdCBlcmF0LCBsdWN0dXMgc2l0IGFtZXQgcGVsbGVudGVzcXVlIG5vbiwgdGVtcHVzIGEgaXBzdW0uIAo8YSBocmVmPSIjIj5BZW5lYW4gY29uZ3VlIGR1aSBhdCBuaXNsIHB1bHZpbmFyIHBvcnRhLjwvYT4gCjxzdHJvbmc+UHJvaW4gaWQgcG9ydHRpdG9yIG5pc2kuIEN1cmFiaXR1ciBzZWQgZG9sb3IgbWV0dXMsIGEgb3JuYXJlIGVyb3MuPC9zdHJvbmc+Cjx1bD4KICAgIDxsaT5WZXN0aWJ1bHVtIHRyaXN0aXF1ZSB0ZWxsdXMgZXUgbmlzbCBmZXVnaWF0IHV0IGNvbnZhbGxpcyBtYXNzYSBkaWN0dW0uPC9saT4KICAgIDxsaT5WZXN0aWJ1bHVtIG5pc2kgZXN0LCB1bGxhbWNvcnBlciBlZ2V0IHZ1bHB1dGF0ZSBuZWMsIGRpY3R1bSB2ZWwgZmVsaXMuPC9saT4KPC91bD4KSW4gaWFjdWxpcyBmZWxpcyB2aXRhZSBqdXN0byBjb25zZWN0ZXR1ciBvcm5hcmUuClV0IHBvcnR0aXRvciBzZW0gaW4gZHVpIGVsZW1lbnR1bSB0aW5jaWR1bnQuClBlbGxlbnRlc3F1ZSB2ZWwgbWFsZXN1YWRhIHZlbGl0LgpOYW0gYXQgbWkgaW4gbGlndWxhIGNvbmd1ZSBzdXNjaXBpdC4KQWxpcXVhbSBhIHNvbGxpY2l0dWRpbiB0ZWxsdXMuJzsKCmZ1bmN0aW9uIGFkZF9wKCRzdHJpbmcsICRkZWxpbWl0ZXIgPSAiXG4iKSB7CiAgICAvLyBraWxsIGl0IGJlZm9yZSBpdCBzdGFydHMgaWYgaXQncyBub3QgYSBzdHJpbmcKICAgIGlmKCFpc19zdHJpbmcoJHN0cmluZykpIHsKICAgICAgICBkaWUoJ0lucHV0IG11c3QgYmUgc3RyaW5nJyk7CiAgICB9CiAgICAKICAgICRzdHJpbmcgPSBleHBsb2RlKCRkZWxpbWl0ZXIsICRzdHJpbmcpOwogICAgJHJlc3VsdCA9ICcnOwogICAgZm9yZWFjaCgkc3RyaW5nIGFzICR2YWx1ZSkgewogICAgICAgIGlmKHByZWdfbWF0Y2goIi9ePFxcLz9kaXZ8XjxcXC8/dWx8XjxcXC8/bGl8PFxcLz9wLyIsICR2YWx1ZSkgPj0gMSkgewogICAgICAgICAgICAkcmVzdWx0IC49ICR2YWx1ZSAuICJcbiI7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgJHJlc3VsdCAuPSAnPHA+JyAuIHRyaW0oJHZhbHVlKSAuICc8L3A+Jy4iXG4iOwogICAgICAgIH0KICAgIH0KICAgIAogICAgcmV0dXJuICRyZXN1bHQ7CiAgICAKfQoKZWNobyBhZGRfcCgkc3RyaW5nKTsKCmVjaG8gIlxuXG4iOwoKZWNobyBhZGRfcCgkdGVzdCk7
stdout
<p>Lorem ipsum <a href="#">dolor</a> sit amet</p>
<div>Consectetur adipisicing elit, sed do</div>
<p>eiusmod tempor incididunt ut labore et dolore</p>
<p>magna aliqua.</p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
<p>Aliquam sagittis augue in quam mollis egestas.</p>
<p>Quisque elit erat, luctus sit amet pellentesque non, tempus a ipsum.</p>
<p><a href="#">Aenean congue dui at nisl pulvinar porta.</a></p>
<p><strong>Proin id porttitor nisi. Curabitur sed dolor metus, a ornare eros.</strong></p>
<ul>
<p><li>Vestibulum tristique tellus eu nisl feugiat ut convallis massa dictum.</li></p>
<p><li>Vestibulum nisi est, ullamcorper eget vulputate nec, dictum vel felis.</li></p>
</ul>
<p>In iaculis felis vitae justo consectetur ornare.</p>
<p>Ut porttitor sem in dui elementum tincidunt.</p>
<p>Pellentesque vel malesuada velit.</p>
<p>Nam at mi in ligula congue suscipit.</p>
<p>Aliquam a sollicitudin tellus.</p>