我可以替换php标签内的占位符吗?

时间:2013-03-13 18:47:23

标签: php

这是我的代码我的.php页面,这是一个用于创建其他个人资料页面的模板。

    <?php
    $dj = Helper::getUserProfileInfo('dj','{thedjid}');
?>
<!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>{username} Home page</title> 
</head>

<body> 
Hello,<br /> 
<img href="<?php echo $dj->getAvatar(); ?>"/><br/>
this is my new home page. Here is my data:<br /><br />
<?php echo 'Dj name: '. $dj->getName();?>
<br /> 
<?php echo 'Contact for booking: '. $dj->getEmail();?> <br /> 

</body>
</html>

当我创建任何新页面时,我想将这个 - {thedjid}(位于页面顶部)替换为id号。 是的我正在尝试为每个用户创建一个新的php页面,因为SEO。因此,如果人们在谷歌搜索,用户可以出来。 就像推特一样,每个人都有一个页面。

我只觉得可以替换模板的php部分中的单词,以便在访问页面时可以拉出用户信息。 请问这可能吗?

1 个答案:

答案 0 :(得分:0)

我认为你对模板的处理方法并不好。

您必须将处理与渲染分开。如果您不想使用像smarty http://www.smarty.net/

这样的模板引擎

您可以将模板放在如下的纯文件中:

<!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>{username} Home page</title> 
</head>

<body> 
Hello,<br /> 
<img href="{avatar}"/><br/>
this is my new home page. Here is my data:<br /><br />
Dj name: {djname}
<br /> 
Contact for booking: {email} <br /> 

</body>
</html>

然后你的PHP代码就像

<?php
$id = //get the value from database, or post or get
$dj = Helper::getUserProfileInfo('dj',$id);
$template = file_get_contents('path/to/template');
$tags = array('{avatar}','{djname}','{email}');
$vals = array($dj->getAvatar(),$dj->getName(),$dj->getEmail());

echo str_replace($tags,$vals,$template);