php - How to split text by html tags using preg_split? -
i have problem splitting text html tags. i'm using ckeditor editing text , saving results database. better understanding problem i'm putting sample text db
string(3351) "<p> etiam @ auctor massa. in eget turpis leo auctor molestie. fusce luctus felis ac porttitor tempor. etiam est magna, convallis consectetur eget, fermentum ac risus. etiam ut dapibus eros. ut non erat et enim scelerisque fermentum. praesent cursus sollicitudin pulvinar. cras faucibus mauris eget velit elementum gravida. vestibulum vel leo ut justo pretium gravida non ligula. aliquam imperdiet metus ut odio varius viverra et @ augue.</p> <div style="page-break-after: always;"><span style="display: none;"> </span></div> <p> aenean aliquet rutrum fringilla. pellentesque non ultrices erat, non luctus lectus. pellentesque eget neque eget augue imperdiet venenatis eu nec odio. nulla suscipit enim et nunc consequat, sed venenatis est consectetur. in posuere, diam convallis vestibulum congue, augue turpis vulputate lacus, malesuada luctus turpis magna adipiscing erat. pellentesque id dui aliquam, viverra nunc ac, sagittis sapien. phasellus nec consectetur nisl, vitae facilisis metus. donec odio mauris, egestas vitae dolor sed, rutrum sollicitudin massa. vestibulum fringilla, ante et aliquet pharetra, lorem nisl posuere dui, @ pellentesque velit dui in purus. aenean nec accumsan arcu. proin dapibus orci ac est vestibulum, interdum pharetra sem vestibulum. donec ut vehicula elit. duis feugiat neque vitae purus molestie sodales. nulla leo nibh, rhoncus nisi sed, hendrerit laoreet tortor.</p> "
as see, page braking ckeditor puted html tag style attribute
style="page-break-after: always;"
i'd split text "page brake marker". i'm using code.
$amatches = preg_split('#%page_break%#', $stext);
what should split text remove html "page brake" div ?
thanks in advance , sorry english
--
formated code
<div style="page-break-after: always;"> <span style="display: none;"> </span>
--
results
$amatches = preg_split('/<div style="page-break-after\: always;\">(.*)<\/div>/', $anews['text_long']);
when tried use code receive:
string(3351) " <p> fusce imperdiet diam non neque pulvinar ultrices. pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. ut congue sapien diam, ac sollicitudin ipsum ullamcorper sit amet. quisque consectetur pulvinar congue. aenean blandit felis. morbi hendrerit bibendum nisi, sed ultrices libero elementum ultrices. nulla ullamcorper massa non neque ultrices imperdiet. in sagittis lacus neque, lobortis adipiscing nunc bibendum id. etiam sed molestie lacus. nullam dapibus mauris eget nisi congue semper. donec elementum eu magna sit amet tincidunt. vivamus tincidunt placerat egestas. mauris fringilla nunc eget purus adipiscing, eu laoreet erat pretium. curabitur aliquam vestibulum auctor. donec quis consequat nibh.</p> <p>  </p> <div style="page-break-after: always;"> <span style="display: none;"> </span></div> <p> aenean aliquet rutrum fringilla. pellentesque non ultrices erat, non luctus lectus. pellentesque eget neque eget augue imperdiet venenatis eu nec odio. nulla suscipit enim et nunc consequat, sed venenatis est consectetur. in posuere, diam convallis vestibulum congue, augue turpis vulputate lacus, malesuada luctus turpis magna adipiscing erat. pellentesque id dui aliquam, viverra nunc ac, sagittis sapien. phasellus nec consectetur nisl, vitae facilisis metus. donec odio mauris, egestas vitae dolor sed, rutrum sollicitudin massa. vestibulum fringilla, ante et aliquet pharetra, lorem nisl posuere dui, @ pellentesque velit dui in purus. aenean nec accumsan arcu. proin dapibus orci ac est vestibulum, interdum pharetra sem vestibulum. donec ut vehicula elit. duis feugiat neque vitae purus molestie sodales. nulla leo nibh, rhoncus nisi sed, hendrerit laoreet tortor.</p> "
but, when im using this:
$amatches = preg_split('/<div style="page-break-after\: always;\">/', $anews['text_long']);
i receive that:
array(2) { [0]=> string(1230) " <p> fusce imperdiet diam non neque pulvinar ultrices. pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. ut congue sapien diam, ac sollicitudin ipsum ullamcorper sit amet. quisque consectetur pulvinar congue. aenean blandit felis. morbi hendrerit bibendum nisi, sed ultrices libero elementum ultrices. nulla ullamcorper massa non neque ultrices imperdiet. in sagittis lacus neque, lobortis adipiscing nunc bibendum id. etiam sed molestie lacus. nullam dapibus mauris eget nisi congue semper. donec elementum eu magna sit amet tincidunt. vivamus tincidunt placerat egestas. mauris fringilla nunc eget purus adipiscing, eu laoreet erat pretium. curabitur aliquam vestibulum auctor. donec quis consequat nibh.</p> " [1]=> string(1671) " <span style="display: none;"> </span></div> <p> aenean aliquet rutrum fringilla. pellentesque non ultrices erat, non luctus lectus. pellentesque eget neque eget augue imperdiet venenatis eu nec odio. nulla suscipit enim et nunc consequat, sed venenatis est consectetur. in posuere, diam convallis vestibulum congue, augue turpis vulputate lacus, malesuada luctus turpis magna adipiscing erat. pellentesque id dui aliquam, viverra nunc ac, sagittis sapien. phasellus nec consectetur nisl, vitae facilisis metus. donec odio mauris, egestas vitae dolor sed, rutrum sollicitudin massa. vestibulum fringilla, ante et aliquet pharetra, lorem nisl posuere dui, @ pellentesque velit dui in purus. aenean nec accumsan arcu. proin dapibus orci ac est vestibulum, interdum pharetra sem vestibulum. donec ut vehicula elit. duis feugiat neque vitae purus molestie sodales. nulla leo nibh, rhoncus nisi sed, hendrerit laoreet tortor.</p> " }
you can split string without page-break
codes this:
$amatches = preg_split('#<div style="page-break-after\: always;\">(.*)<\/div>#s', $stext);
output
array (size=2) 0 => string '<p>etiam @ auctor massa. in eget turpis leo auctor molestie. fusce luctus felis ac porttitor tempor. etiam est magna, convallis consectetur eget, fermentum ac risus. etiam ut dapibus eros. ut non erat et enim scelerisque fermentum. praesent cursus sollicitudin pulvinar. cras faucibus mauris eget velit elementum gravida. vestibulum vel leo ut justo pretium gravida non ligula. aliquam imperdiet metus ut odio varius viverra et @ augue.</p> ' (length=456) 1 => string '<p>aenean aliquet rutrum fringilla. pellentesque non ultrices erat, non luctus lectus. pellentesque eget neque eget augue imperdiet venenatis eu nec odio. nulla suscipit enim et nunc consequat, sed venenatis est consectetur. in posuere, diam convallis vestibulum congue, augue turpis vulputate lacus, malesuada luctus turpis magna adipiscing erat. pellentesque id dui aliquam, viverra nunc ac, sagittis sapien. phasellus nec consectetur nisl, vitae facilisis metus. donec odio mauris, egestas vitae dolor'... (length=891)
Comments
Post a Comment