php模板技术php是怎么向模板中传值的呢?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php模板技术php是怎么向模板中传值的呢?相关的知识,希望对你有一定的参考价值。

接了一个模板的网站可是首页和html是分开写的,查了之后发现实用模板引擎。于是我自己加了东西可是在模板中却调不到值,请问原理是什么有没一个简单的范例

模板引擎的原理就是先在模板上需要写上变量地方先写几个自己设置的占位符
php文件调用的时候,根据实际变量把他替换掉
给你一个简单的比方:
<body>
$names
</body>
这是一个简单的模板,比如这个文件名叫:index.htm
然后:
<?php
$Names = '小明'
$Contents = file_get_contents('index.htm');
$Html = preg_replace('/\$(.*)/i', '<?php echo $1;?>', $Contents);
file_put_contents('index.tpl.php', $Html);
echo include_once 'index.tpl.php';
?>
这样,你运行后,页面上就会显示 小明 2 个字
查看源代码就会看到
<body>
小明
</body>
当然,模板引擎技术,远远不是上面所说的那么简单,但原理是产不多的追问

恩,谢谢你的解答,但是上面的那些我很多都不明白,方便解释下吗

追答

哎!
就一句话
你在模板引擎中
或者说在模板上单单写模板代码没有用啊
比如:
你在模板上写一个$names
这是没有用的啊,因为你的整个程序,压根就没有names这个变量,你就是写了,也没有用

追问

可以不可以直接在模板中写PHP代码,然后index.php调用该模板后可以直接运行PHP代码?我在模板中看到的都是 首页有个叫什么wind的

参考技术A

最简单的:

a.html
<div><?php echo $b;?></div>
a.php
function view($html,$data=array())
extract($data);
include($html.'.html');


view('a',array('b'=>$b));
类似这样的,实际会复杂一点,也可能会有点不同。

参考技术B 就是利用正在则表达式替换模板中的东西

php中传值与传引用的区别?

问题一: 请说明php中传值与传引用的区别。问题二: 什么时候传值什么时候传引用?

传值的话,如果是非对象,会传一个值的拷贝,对这个变量做任何改动都不影响原值。
传引用或者传对象,是传真实的内存地址,对这个变量做的改动会影响原值。

function func1($a)
$a = $a + 1;

function func2(&$a)
$a = $a + 1;

$sample = 1;
func1($sample);
echo $sample; // 输出 1

$sample = 1;
func2($sample);
echo $sample; // 输出 2
参考技术A 之前回答过一个同样的问题,粘过来再用一次:

传值的话,如果是非对象,会传一个值的拷贝,对这个变量做任何改动都不影响原值。
传引用或者传对象,是传真实的内存地址,对这个变量做的改动会影响原值。

function func1($a)
$a = $a + 1;

function func2(&$a)
$a = $a + 1;

$sample = 1;
func1($sample);
echo $sample; // 输出 1

$sample = 1;
func2($sample);
echo $sample; // 输出 2

参考资料:http://zhidao.baidu.com/question/227679087.html

参考技术B 简单的说,在数组中传值时,变量的值是不会产生变化的,而传引用的话,变量的值可能会变化,例如
<?php
$var = 2;
//值传递
function a($v)
$v =$v*$v;

echo $var; //输出2
a($var);
echo $var;//仍输出2
?>

<?php
$var = 2;
//引用传递
function a(&$v)
$v =$v*$v;

echo $var; //输出2
a($var);
echo $var;//输出4
?>

什么时候传值,什么时候传引用,没有具体的规律,具体问题具体分析

以上是关于php模板技术php是怎么向模板中传值的呢?的主要内容,如果未能解决你的问题,请参考以下文章

PHP中传值与传引用的区别 能举一个例子吗

php中传值与传引用的区别是什么

php模板引擎smarty怎么安装?

smarty 模板怎样使用php标签

html选项值的PHP模板if语句

thinkphp 怎么替换模板里面的字符