php模板引擎

PHP模板引擎正则替换函数 preg_replace 与 preg_replace_callback 使用总结

生来就可爱ヽ(ⅴ<●) 提交于 2019-12-28 08:47:57
在编写PHP模板引擎工具类时,以前常用的一个正则替换函数为 preg_replace() ,加上正则修饰符 /e ,就能够执行强大的 回调函数 ,实现模板引擎编译(其实就是字符串替换)。 详情介绍参考博文: PHP函数preg_replace() 正则替换所有符合条件的字符串 应用举例如下: <?php /** * 模板解析类 */ class Template { public function compile($template) { // if逻辑 $template = preg_replace("/\<\!\-\-\{if\s+(.+?)\}\-\-\>/e", "\$this->ifTag('\\1')", $template); return $template; } /** * if 标签 */ protected function ifTag($str) { //$str = stripslashes($str); // 去反转义 return '<?php if (' . $str . ') { ?>'; } } $template = 'xxx<!--{if $user[\'userName\']}-->yyy<!--{if $user["password"]}-->zzz'; $tplComplier = new Template(); $template

我的收藏

馋奶兔 提交于 2019-12-26 00:17:51
平时收藏了一些好的站点,在些谢谢那些作者: Bookmarks 书签栏 书签工具栏 综合 看雪安全论坛 - www.pediy.com 蓝色理想 经典论坛-前端开发 UI设计 web编程 w3school 在线教程 DIV+CSS教程_DIV+CSS布局_十天学会div+css_web标准化——标准之路 禅意花园 学习编程 | Codecademy 51CTO.COM - 技术成就梦想 - 中国领先的IT技术网站 后代选择器和子选择器的区别!!! - Knuth_档案 - 博客园 详细解读DIV+CSS定位 CSS/DIV网页设计视频教程目录 - CSS,Javascript,jQuery,视频教程 - Web网页设计开发制作技巧,前沿视频教室 CSS论坛 - DIVCSS5 前端练习系列60-ie绝对定位点击的问题 | <前端开发> CSS3-HTML5之家 中文CSS3,HTML5教程网站 让IE也支持box-shadow | Web前端开发 – 专注于网站前端设计与Web用户体验 W3CPlus | css3教程-css3实例-css3动画 | 记述前端那些事——引领Web前沿 22款给力的HTML5和CSS3帮助工具前端集锦工具 | 前端开发网(W3Cfuns.com)! RD1012: 不同浏览器内 'line-height' 样式设置会影响不同行内替换元素的显示高度 -

PHP 实现页面静态化

大城市里の小女人 提交于 2019-12-24 03:03:03
PHP文件执行阶段: 语法分析-》编译-》运行 静态html文件执行顺序 :运行 动态程序: 连接数据库服务器或者缓存服务器-> 获取数据->填充到模板->呈现给用户 关于优化页面响应时间 动态页面静态化 优化数据库 使用负载均衡 使用缓存 1.  动态页面静态化: 页面中一些内容不经常改动 不适用于内容经常变换的应用:例如:微博等。如果页面中一些内容改动,动态页面静态化是非常有效的加速方法。   动态页面静态化好处: 减少服务器脚本的计算时间 降低服务器的响应时间 2.  动态URL地址设置静态形式(伪静态) 3.  php静态化: 1.纯静态: a. 局部纯静态 b. 全部纯静态 2. 伪静态 4.Buffer认知(php.ini文件中output_buffering=on开启缓存区,ob_start()也可以开启缓存区) a) Buffer其实就是缓冲区,一个内存地址空间,主要用于数据存储区域。 b)输出流程:内容-》php buffer->tcp->终端 c)获取缓冲区内容:php内容函数 ob_get_contents(); d)ob_start():开启缓冲区(php5.3默认开启output_buffering=on) 5.php如何实现页面纯静态化 a)基本方式 i.file_put_contents()函数:将一个字符串写入文件 file_put_contents

10问PHP程序员

懵懂的女人 提交于 2019-12-21 19:00:54
1.首先看了 PHP的源码API函数,对于许多口水仗的争论一笑而过,只是停留在脚本级别上的什么效率,安全。。。之争完全就是无稽之谈, 没有深入理解API,所有的争论都是臆测和不科学的态度。你做了吗? 2.不再把PHP看作一门后台语言,而是一门类似JS的脚本,页面表现级的语言,更多的是尝试使用一种软件来做后台,PHP做前台, 尝试真正的B/S开发。你的看法呢? 3.知识更新。PHP中的 接口你懂了吗? 反射你听过吗?JS中的事件 冒泡你懂了吗? 原型链知道吗?一切函数都是对象,你能理解否?MYSQL里面的 视图,存储过程你尝试过么有? 4. 扎实的学知识。你是不是离开了JQ框架就连个 DOM操作的原生JS都不会写了?你是不是离开了DB类,就连个简单的查询都不会写了?你是不是离开了IDE,连个表格都画不出来?你是不是到现在多表查询,子查询都还不会?你是不是到现在就只知道索引是用来加快查询的? 你是不是到现在连个PHP5的稍微复杂点的 OO类都还不会写?你会正则吗?你的英语水平咋样? 5. 扎实的算法基础。你知道 选择排序,插入排序,冒泡排序,二分排序,希尔排序并且能写出来吗?你知道怎么 遍历二叉树吗?知道 霍夫曼吗?你知道图吗?你知道 龙格-库塔,迭代,插值,雅戈尔,牛顿下山法吗?知道 ZIP压缩原理吗?你是不是可爱到以为加减乘除加上循环判断就搞定了算法?你知道 概率论,微积分

php缓存技术

北战南征 提交于 2019-12-21 01:06:34
PHP缓存包括PHP编译缓存和PHP数据缓存两种。 PHP 是一种 解释型语言 ,属于边编译边运行的那种。这种运行模式的优点是程序修改很方便,但是运行效率却很低下。PHP编译缓存针对这种情况做改进处理,使得PHP语言只要运行一次,就可以把程序的编译结果缓存起来。这样,接下来的每次运行都不需要再次编译了,这大大提高PHP运行速度。 PHP数据缓存运用于PHP实际开发之中针对 数据处理 进行缓存,主要两大方向为:针对数据库数据进行缓存和针对PHP模板数据进行缓存。 PHP 的数据缓存包括针对数据库数据进行缓存和针对PHP模板数据进行缓存。针对数据库数据进行缓存的工具有 memcache 等。针对PHP模板数据进行缓存的工具主要有 smarty 等 1、普遍缓存技术: 数据缓存:这里所说的数据缓存是指数据库查询PHP缓存机制,每次访问页面的时候,都会先检测相应的缓存数据是否存在,如果不存在,就连接数据库,得到数据,并把查询结果序列化后保存到文件中,以后同样的查询结果就直接从缓存表或文件中获得。 用的最广的例子看Discuz的搜索功能,把结果ID缓存到一个表中,下次搜索相同关键字时先搜索缓存表。 举个常用的方法,多表关联的时候,把附表中的内容生成数组保存到主表的一个字段中,需要的时候数组分解一下,这样的好处是只读一个表,坏处就是两个数据同步会多不少步骤,数据库永远是瓶颈,用硬盘换速度

php模板引擎原理

末鹿安然 提交于 2019-12-20 21:09:15
模板引擎实现的原理 访问php文件, php文件会去加载模板引擎,通过模板引擎去加载模板然后替换模板里面的变量 然后生成一个编译文件 最后将该编译文件导入 访问的php文件中输出 第二次访问的时候 如果 缓存文件存在或者没有被改动则直接 导入缓存文件 输出 否则重新编译 自定义的一个模板引擎 mytpl.class.php <?php class mytpl{ //指定模板目录 private $template_dir; //编译后的目录 private $compile_dir; //读取模板中所有变量的数组 private $arr_var=array(); //构造方法 public function __construct($template_dir="./templates",$compile_dir="./templates_c") { $this->template_dir=rtrim($template_dir,"/")."/"; $this->compile_dir=rtrim($compile_dir,"/")."/"; } //模板中变量分配调用的方法 public function assign($tpl_var,$value=null){ $this->arr_var[$tpl_var]=$value; } //调用模板显示 public

java和PHP的区别

二次信任 提交于 2019-12-16 10:27:15
java和PHP的区别 本文章纯属自己记录学习的文章,东西都是查看别人的文章总结的,链接如下: PHP编译: https://blog.csdn.net/tracywxh/article/details/41147915 JIT即时编译: https://www.cnblogs.com/jueyoq/p/7900232.html 考点:java特性 分析:答题方向——代码编译,模板引擎,多线程 名词解释: 1)静态语言:就是在编译时就知道数据类型的语言(java,c,c++等),动态语言就是运行时才确定数据类型(js,php) 2)JVM:虚拟机 3)JIT:即时编译 知识扩展: 1)java的程序编译过程 java是一种静态语言,但是比较特殊,需要编译,但是并不是在执行之前就编译为本地机器码。所以java编译机制分为两个时期: javac指令讲java源码变成java字节码的静态编译过程 java字节码被编译为本地机器码的过程,并且因为这个过程是在程序运行时期完成的所以称之为即时编译。 静态编译过程是javac来完成的,而即时编译是通过JVM(虚拟机)来完成的。即时编译机制是被内嵌于 java字节码执行引擎之中,可以算的上是 jvm的一个内存组件。 jvm的执行引擎中 有 一个解释器用来识别字节码指令,并将字节码指令映射为机器指令 调用操作系统来完成程序的运行。 这样来看

PHP学习资源整理

戏子无情 提交于 2019-12-14 12:05:40
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 学习资源 PHP相关的有参考价值的社区,博客,网站,文章,书籍,视频等资源 PHP网站(PHP Websites) PHP The Right Way 一个PHP实践的快速参考指导 PHP书籍(PHP Books) Modern PHP – 作者是 PHP 之道 的发起人和 Slim框架 的作者 Modern PHP(中文版) 依赖管理( Dependency Management ) 用于依赖管理的包和框架 Composer / Packagist – 一个包和依赖管理器. Composer Installers – 一个多框架Composer库安装器 pickle – PHP扩展安装器 Melody – A tool to build one file Composer scripts. 框架( Frameworks ) Web开发框架 Symfony2 – 由独立组件构成的框架(SP2) Zend Framework 2 – 同样是由独立组件构成的框架(ZF2) Laravel 5 – 简洁优雅的PHP Web开发框架(L5) Aura PHP – 独立组件的框架 Yii2 – 用于开发大型Web应用的高性能PHP框架 Nette – 同样是由独立组件构成的框架 PPI Framework 2 –

D编程语言基础篇

狂风中的少年 提交于 2019-12-06 06:46:42
D 语言曾经兴盛过,也随着信息技术发展而颓废过,但最终我们很高兴的看到它又带着强烈的自信开始复苏,希望通过本文让现代计算机科学工作者进一步了解这门具有独特魅力的编程语言。 引言 D 语言是一门语法相当优雅的编译型语言,自 1999 年发布至今已发展了 20 年,它既拥有 Java 那样强大的表现力,又具有 C++ 相当的性能,本来是一门未来相当明朗的语言,但是当年因为 2.x 版本破坏性升级导致社区大量核心开发者将其放弃。 2010 年 ,伴随着 Andrei Alexandrescu 新书《The D Programming Language》的出版,D 语言又变得活跃起来,D 语言 2.0 的特性变得稳定,运行库与标准库的分离,解决了 D 语言 1.0 时期标准库之争的问题。 2011 年 ,D 语言的开发迁移到了 Github,在有了更好的代码管理和 bug 跟踪方式之后,参与到 D 语言编译器、运行库和标准库开发的人员也有了明显的增加。次年,D 语言 1.0 版本停止更新,开发者全力投入到 2.0 的开发。 2014 年 ,D 语言编译器前端代码的许可协议变更为更加宽松的 Boost 许可。在 2017 年,编译器所有代码最终都使用了 Boost 许可。在解决编译器源码许可问题之后,D 语言在开源社区中变得更加开放,并顺利合并进入了 GCC 9.x。 直到 2015 年

什么是PHP?

半城伤御伤魂 提交于 2019-12-05 08:36:04
PHP 起源于 1995 年,由 Rasmus Lerdorf 开发。到现在, PHP 已经历了21年的时间洗涤,成为全球最受欢迎的脚本开发语言之一。由于 PHP 5是一种面向对象、完全跨平台的新型 Web 开发语言。所以从开发者角度考虑还是从经济角度考虑,都是非常实用的。PHP语法结构简单、易于入门,很多功能只需一个函数就能实现。 1、什么是PHP PHP ( Hypertext Preprocessor ,超文本预处理器),是一种服务器端、跨平台、 HTML 嵌入式的脚本语言,其独特的语法混合了 C 语言、 Java 语言和 Perl 语言的特点,是一种被广泛应用的开源式的多用脚本语言,尤其适合 Web 开发。 PHP 是 B / S ( Browser / Server ,浏览器/服务器)体系结构,属于三层结构。服务器启动后,用户可以不使用客户端软件,只使用浏览器即可访问,既保持图形化的用户界面,又大大减少了应用的维护量。 2、PHP语言的优势 PHP 起源于自由软件,既开放源代码软件,使用PHP进行Web应用程序的开发具有以下优势: 安全性高: PHP 是开源软件,每个人都可以看到所有PHP的源代码,程序代码与 Apache 编译在一起的方式让它的安全设定更灵活。 PHP 具有公认的安全性能。 跨平台性: PHP 几乎支持所有的操作平台(如 Windows / UNIX /