MoFish Posted December 11, 2014 Share Posted December 11, 2014 Hi, I currently have some html stored in a variable as below: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Untitled Document</title> </head> <body> Hello world </body> </html> This requires a "<div class='container'>" to be inserted directly after the opening body tag. My original thinking was to use str_replace on the <body> to be <body><div class="container"> however note that occasionally my body will require an ID or Class. I therefore need a way to make it appear after the body tag, even if it has an ID or Class on it . I assume this may be reg-ex, but am not sure if there is a simple way around this? Would anyone be able to clarify and point me in the right direction. Much appreciated. MoFish Link to comment https://forums.phpfreaks.com/topic/293025-string-manipulation-insert-after-body/ Share on other sites More sharing options...
Ch0cu3r Posted December 11, 2014 Share Posted December 11, 2014 You could use simpleHTMLDom to modfiy the HTML Example code require 'simple_html_dom.php'; $html = <<<HTML <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Untitled Document</title> </head> <body> Hello world </body> </html> HTML; $dom = new simple_html_dom(); // load html dom $dom->load($html); // get the body element $body = $dom->find('body',0); // wrap contents of the body in a div element with the class of container $body->innertext = '<div class="container">' . $body->innertext . '</div>'; // return the new html structure $html = $dom->save(); Link to comment https://forums.phpfreaks.com/topic/293025-string-manipulation-insert-after-body/#findComment-1499270 Share on other sites More sharing options...
MoFish Posted December 11, 2014 Author Share Posted December 11, 2014 Hey Ch0cu3r. Thanks for the solution. I'll give this a go later on tonight and let you know how I get on. Looks to be the perfect solution. Cheers, Guy Link to comment https://forums.phpfreaks.com/topic/293025-string-manipulation-insert-after-body/#findComment-1499281 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.