Reputation: 840
I looking for the sollution buffering more texts. I have the following (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);
?>
and it works only with title but i would like to buffer 4 information someting like this:
<?
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);
?>
Upvotes: 0
Views: 150
Reputation: 605
you are echo'ing page content 4 times. don't do that , instead put the replace result in pagecontent variable again and echo it once in the end
$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;
Upvotes: 2