⑴ 用php编写的一行行代码 是怎么在服务器端运行的
从图上可以看到,PHP实现了一个典型的动态语言执行过程:拿到一段代码后,经过词法解析、语法解析等阶段后,源程序会被翻译成一个个指令 (opcodes),然后ZEND虚拟机顺次执行这些指令完成操作。PHP本身是用C实现的,因此最终调用的也都是C的函数,实际上,我们可以把PHP看 做是一个C开发的软件。
PHP的执行的核心是翻译出来的一条一条指令,也即opcode。
Opcode是PHP程序执行的最基本单位。一个opcode由两个参数(op1,op2)、返回值和处理函数组成。PHP程序最终被翻译为一组opcode处理函数的顺序执行。
常见的几个处理函数:
1 ZEND_ASSIGN_SPEC_CV_CV_HANDLER : 变量分配 ($a=$b)
2 ZEND_DO_FCALL_BY_NAME_SPEC_HANDLER:函数调用
3 ZEND_CONCAT_SPEC_CV_CV_HANDLER:字符串拼接 $a.$b
4 ZEND_ADD_SPEC_CV_CONST_HANDLER: 加法运算 $a+2
5 ZEND_IS_EQUAL_SPEC_CV_CONST:判断相等 $a==1
6 ZEND_IS_IDENTICAL_SPEC_CV_CONST:判断相等 $a===1
⑵ php是用什么语言开发的,c语言吗
php的解释器是用c写的,解释器相当于弱编译器,但是php本身并不基于某种底层语言。
PHP在服务器端执行的脚本语言,与C语言类似,是常用的网站编程语言。它驱动全球超过2亿多个网站,有全球超过81.7%的公共网站在服务器端采用PHP。PHP常用的数据结构都内置了,使用起来方便简单,也一点都不复杂,表达能力相当灵活。
(2)phpzend内核扩展阅读
主要特点
(一)开源性和免费性
由于PHP的解释器的源代码是公开的,所以安全系数较高的网站可以自己更改PHP的解释程序。另外,PHP 运行环境的使用也是免费的。
(二)快捷性
PHP是一种非常容易学习和使用的一门语言,它的语法特点类似于C语言,但又没有C语言复杂的地址操作,而且又加入了面向对象的概念,再加上它具有简洁的语法规则,使得它操作编辑非常简单,实用性很强。
(三)数据库连接的广泛性
PHP可以与很多主流的数据库建立起连接,如MySQL、ODBC、Oracle等,PHP是利用编译的不同函数与这些数据库建立起连接的,PHPLIB就是常用的为一般事务提供的基库。
参考资料来源:网络-PHP
⑶ PHP五大主流框架介绍
介绍PHP五大主流框架(排名不分先后)
1. Laravel
Laravel是一款简洁、优雅的PHP Web开发框架。它旨在从混乱的代码中解放开发者,助你构建完美的网络应用。代码简洁、富有表达力。
2. Thinkphp
THinkPHP框架是一个快速、兼容且轻量级的国产PHP开发框架。它诞生于2006年初,原名FCS,2007年元旦正式更名为ThinkPHP。特别适合小型项目,国内最受欢迎的国产php开源框架。
3. Zend Framework
Zend Framework (ZF)由Zend公司推出,是用PHP 5来开发web程序和服务的开源框架。ZF以100%面向对象编码实现,组件结构独特,每个组件几乎独立,提供“use-at-will”设计,便于开发者独立使用。
4. Yii2
Yii是一款高性能框架,适用于开发WEB 2.0应用。Yii自带丰富功能,如MVC、DAO/ActiveRecord、I18N/L10N、缓存、身份验证和基于角色的访问控制、脚手架、测试等,大幅缩短开发时间。
5. CodeIgniter
CodeIgniter是一款小巧但功能强大的PHP网站开发框架和工具包。为开发者提供了足够的自由支持,帮助更快速地工作。
选择合适的框架能加速项目构建,关键在于开发者有坚实的基础。今日介绍到这里。
如需建立网站,推荐阿里云建站云企的活动。适合无建站经验的同学,提供数千套网站模板,可随意替换,备案上线速度快,拥有可视化的后台管理系统,集成流量分析工具,SEO收录快等优势。
⑷ 请教高手,如何解密用zend加密的php文件,已尝试多种解密软件还是不行,恳请高手帮忙!QQ:460602396
Zend加密的时候,如果版本在Zend Guard5.0以上,同时在配置设置里选择以PHP5.3作为目标程序的版本来做加密的话,目前所有的Dezend内核都是无法解密的,直接不做任何处理。但目前运用广泛的还是PHP5.2.x的版本,所以从兼容角度来看选择PHP5.3来做Zend加密的并不多,实在不巧遇上了,也只能是放弃,目前没有解密办法。
另外一种解密不了的情况是,无论使用多高版本的Zend Guard,加密时使用PHP5.2.x作为目标版本(也就是使用PHP5.2.x来做开发,然后用Zend来加密,加密时有选项的),经过一些特殊处理以后,让dezend工具试图解密这些被加密的PHP程序,就出现代码溢出,无法解密出源码来,也能很好的保护代码,而且Zend组件几乎所有的服务器或者虚拟主机都能安装支持,兼容性就非常好了。
另外,看到有朋友说到易维这个加密工具,易维是使用自己的loader了,也是一套新的PHP加密程序,并不是所有的虚拟主机提供商的服务器上都有安装相应的loader,所以目前普及性还很不理想。如果一个PHP开发商或者开发者购买了这个易维的加密工具,那就需要要求他们所开发的PHP程序的用户具有独立主机或者VPS,用虚拟主机的用户就得靠边了。
⑸ php文本里 php和html代码谁先执行谁啊
先执行PHP代码,PHP和HTML混编的时候你肯定遇到过下面的情况:
<?php if(true){ ?>
<div>true</div>
<?php }else{ ?>
<div>false</div>
<?php } ?>
上面的代码结果是浏览器显示的是<div>true</div>
如果先执行html那么结果你就发现PHP的逻辑判断就不会生效了。
所以先执行的PHP,而PHP文件里的HTML代码,程序会默认为是一个字符串被PHP输出。以上代码的最终呈现效果如果全换成PHP的话将会是下面的代码:
<?php if(true){
echo '<div>true</div>';
}else{
echo '<div>false</div>';
}
?>
⑹ php底层原理 php是如何运行的
1、PHP动态语言执行过程:拿到一段代码后,经过词法解析、语法解析等阶段后,源程序会被翻译成一个个指令(opcodes),然后ZEND虚拟机顺次执行这些指令完成操作。PHP本身是用C实现的,因此最终调用的也是C的函数,实际上,我们可以把PHP看做一个C开发的软件。
2、PHP的4层运行体系:
(1)Zend引擎:Zend整体用纯C实现,是PHP的内核部分,他将PHP代码翻译(词法、语法解析等一系列编译过程)为可执行opcode的处理并实现相应的处理方法、实现了基本的数据结构(如:hashtable、OO)、内存分配机制及管理、提供了相应的api方法供外部调用,是一切的核心,所有的外围功能均围绕Zend实现。
(2)Extensions:围绕着Zend引擎,extensions通过组件式的方式提供各种基础服务,我们常见的各种内置函数(array系列)、标准库等都是通过extension来实现,用户也可以根据需要实现自己的extension的典型应用)。
(3)Sapi:Sapi全称,也就是服务端应用编程接口,Sapi通过一系列钩子函数,使得PHP可以和外围交互数据,这是PHP非常优雅和成功的设计,通过sapi成功的将PHP本身和上层应用解耦隔离,PHP可以不再考虑如何针对不同应用进行兼容,而应用本身也可以针对自己的特点实现不同的处理方式。
(4)上层应用:这就是我们平时编写的PHP程序,通过不同的spai方式得到各种各样的应用模式,如何通过webserver实现web应用、在命令行下已脚本方式运行等等。