Jump to content

String Manipulation | Insert After Body


MoFish

Recommended Posts

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

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();

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.