使用PHP缓冲区缓冲更多信息

时间:2015-04-18 08:28:28

标签: php meta

我正在寻找缓冲更多文本的解决方案。我有以下(Set Page Title using PHP

<?
ob_start (); 
?>
<!DOCTYPE>

<head>
<title><!--TITLE--></title>
</head>

<body>
<?
$pageTitle = 'Title of Page'; // Call this in your pages' files to define the page title
?>
</body>
</html>
<?
$pageContents = ob_get_contents (); // Get all the page's HTML into a string
ob_end_clean (); // Wipe the buffer

// Replace <!--TITLE--> with $pageTitle variable contents, and print the HTML
echo str_replace ('<!--TITLE-->', $pageTitle, $pageContents);
?>

它只适用于标题,但我想缓冲4这样的信息:

<?
ob_start ();
?>
<!DOCTYPE>

<head>
    <meta property="og:title" content="<!--TITLE-->" />
    <meta property="og:url" content="<!--URL-->" />
    <meta property="og:image" content="<!--IMG-->" />
    <meta property="og:description" content="<!--DESCRIPTION-->" />
</head>
<body>
<?
    $pageTitle = 'Title of Page'; 
    $pageUrl = 'http://anything.com'; 
    $pageImg = 'http://anything.com/lol.png'; 
    $pageDesc = 'One sentence is here';
?>
</body>
</html>
<?
$pageContents = ob_get_contents (); 
ob_end_clean (); 
echo str_replace ('<!--DESCRIPTION-->', $pageDesc, $pageContents);
echo str_replace ('<!--IMG-->', $pageImg, $pageContents);
echo str_replace ('<!--URL-->', $pageUrl, $pageContents);
echo str_replace ('<!--TITLE-->', $pageTitle, $pageContents);
?>

1 个答案:

答案 0 :(得分:2)

你正在回应4次页面内容。不要这样做,而是将替换结果再次放入pagecontent变量并在最后回显一次

$pageContents= str_replace ('<!--DESCRIPTION-->', $pageDesc, $pageContents);
$pageContents= str_replace ('<!--IMG-->', $pageImg, $pageContents);
$pageContents= str_replace ('<!--URL-->', $pageUrl, $pageContents);
$pageContents= str_replace ('<!--TITLE-->', $pageTitle, $pageContents);
echo $pageContents;