- preg_replace: documentation ( source)
<?php
$body = <<<HTML
<body class="old_attr">
<div>(content)</div>
</body>
HTML;
$new_class = "new_class_attr";
$body = preg_replace('~<body[^>]*class *= *["\']\K~', "$new_class ", $body, 1, $count);
if (!$count) {
$body = preg_replace('~<body\K~', " class=\"$new_class\"", $body, 1);
}
echo $body;