Просмотр поста

.
ramzes
малость говнокода (+/-)
function customHeaderRegistry($name = null, $value = null, $tag = false)
{
    static  $data = [];

    if(is_null($name) AND is_null($value)){
            return $data;
        }else{
        if($tag){
            $data['tags'][$name] = $value;

        }else{
            $data[$name] = $value;

        }

    }

}


function createCustomHeader(array $header = [])
{
    customHeaderRegistry('boxstart', isset($header['boxstart']) ? $header['boxstart'] : '<newheader>');
    customHeaderRegistry('boxend', isset($header['boxend']) ? $header['boxend'] : '</newheader>');
    customHeaderRegistry('tags', isset($header['tags']) ? $header['tags'] : []);
    ob_start();
    
}


function setCustomHeader($tag, $value)
{
    customHeaderRegistry($tag, $value, true);

}


function replaceCustomHeader()
{
    $data = customHeaderRegistry();
    $html = ob_get_contents();
    ob_clean();
    foreach ($data['tags'] as $tag=>$value){
        $html = preg_replace('|(<[^>]+'.$tag.'.*?)content="([^"]+)|is', '\1 content="'.$value, $html);
        $html = preg_replace('|<'.$tag.'>([^<]+)|is', '<'.$tag.'>'.$value, $html);
    }

    ob_start();
    echo $html;
}


createCustomHeader(); // запускаем в самой самой шапке


setCustomHeader('title', 'test script');
setCustomHeader('description', 'test 222');
// в любом месте скрипта вставляем подобные строчки




replaceCustomHeader(); // в самоооом самом конце


<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=2.0, user-scalable=yes">
    <meta name="HandheldFriendly" content="true">
    <meta name="MobileOptimized" content="width">
    <meta content="yes" name="apple-mobile-web-app-capable">
    <meta name="Generator" content="JohnCMS, http://johncms.com
    <meta name="keywords" content="johncms, cms, php, wap, mobile">
    <meta name="description"   content="test 222">
    <link rel="stylesheet" href="http://johncms.com/theme/selemet/style.css">
    <link rel="shortcut icon" href="http://johncms.com/favicon.ico">
    <link rel="alternate" type="application/rss+xml" title="RSS | Новости ресурса" href="http://johncms.com/rss/rss.php">
    <title>test script</title>
</head>