2013-03-13 133 views
0

这是我的代码我的.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。因此,如果用户在谷歌搜索,用户可以出来。 就像twitter一样,每个人都有一个页面。

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

+6

如何关于使用*变量*? – Niko 2013-03-13 18:48:36

+0

什么是id号码,从哪里来?你可以编辑你的问题,以提供更多的清晰度? – 2013-03-13 18:50:35

+1

您是否意味着您要为每个用户创建一个新的PHP页面?如果是的话a)怎么样,和b)为什么?通常这将是一个单一的PHP页面与用户的ID传递查询字符串(例如'/dj.php?djid = 42') – IMSoP 2013-03-13 18:55:23

回答

0

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

您必须将处理与渲染分开。如果你不想使用模板引擎像智者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);