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 Quote Link to comment 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(); Quote Link to comment 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 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.