/** * gets attribute from a tag string */ public static function fixHtmlTagStructure(&$string, $remove_surrounding_p_tags = 1) { if (empty($string)) { return; } // Combine duplicate <p> tags nnText::combinePTags($string); // Move div nested inside <p> tags outside of it nnText::moveDivBlocksOutsidePBlocks($string); // Remove duplicate ending </p> tags nnText::removeDuplicateTags($string, '/p'); if ($remove_surrounding_p_tags) { // Remove surrounding <p></p> blocks nnText::removeSurroundingPBlocks($string); } }
/** * gets attribute from a tag string */ public static function fixHtmlTagStructure(&$str) { // Move div nested inside <p> tags outside of it // input: <p><div>...</div></p> // output: </p><div>...</div><p> $str = preg_replace('#((?:<p(?: [^>]*)?>\\s*)?)((?:<br ?/?>)?\\s*<div(?: [^>]*)?>.*?</div>\\s*(?:<br ?/?>)?)((?:\\s*</p>)?)#si', '\\3\\2\\1', $str); // Combine duplicate <p> tags nnText::combinePTags($str); // Remove duplicate ending </p> tags nnText::removeDuplicateTags($str, '/p'); }