首页 开发编程 正文

多版本php怎么切换

php的扩展模块都放在ext/目录下?我们要做一个分析config文件的模块。另外需对主目录下的configure和internal_functions.c作一些修改。php会通过模块入口找到你写的函数下面几个函数定义是用宏进行定义的。...

多版本php怎么切换,你手机里有什么非常有价值的APP?

这个手机app可以为我的冲动“买单”!你说它价值高不高?!

它叫做——「微痕迹」

我想各位都有过这种经历,一不小心删除了微信对话框聊天中的文件/图片,只能后悔着...

而微痕迹可以帮你找到几个月之前的微信中文件、图片、视频、语音,包括你已经删除了的!

打开App,它会快速扫描你的手机。之后你可以查看到微信中缓存过的各类文件:

无论是对话中出现的图片/视频:

还是各类文件:

甚至聊天中的语音都可以帮你找到!

只要你没有对手机彻底清理过,甚至可以找到几个月前的图片/文件内容:

内容支持批量导出:

相当于给微信做了一个完美备份!

值得一提的是,它同样支持QQ!

当然,微痕迹的实质可是用来做手机清理。

我们在使用微信/QQ的过程中,内存会越来越大。利用微痕迹可以清楚一些不需要的缓存内容,释放手机空间。

但它也解决了微信备份的一大难题,关键时候可以帮你找回重要的文件内容。另外,突然看到之前的照片/视频也会觉得非常有意思。

最后,这款手机APP的安装包我也为你打包好啦,看这里↓↓↓↓:

觉得不错的话,记得给我点赞哈!

PHP有什么特点?

tep 1 =>

php的扩展模块都放在 ext/ 目录下,比如说 snmp模块、mysql模块。 我们要建立自己的模块,就要在ext目录下为自己的模块建一个目录。比如,我们要做一个分析config文件的模块,命名为pconfig模块(parse config的简写),需在ext下建立目录pconfig。将我写好的7个文件copy到该目录下,另外需对主目录下的configure和internal_functions.c作一些修改。

Step 2 =>

Makefile.am Makefile.in

是模板文件,用户执行configure时,会调用这两个文件,生成编译时所用的Makefile文件。修改时将小写的pconfig换成你自己的模块名,别忘了把大写的PCONFIG也替换掉(不要告诉我你不会vi的替换语句)。config.m4也是执行configure将会调用的检测脚本程序,以后我们来讨论这些脚本程序的更深入的修改。现在你只需要把pconfig该成你的模块就可以了。对config.h.stub和setup.stub也如法炮制。其实setup.stub也没什么用。

Step 3 =>

php3-pconfig.h 头文件中

extern php3_module_entry pconfig_module_entry;

#define pconfig_module_ptr &pconfig_module_entry

#define phpext_pconfig_ptr pconfig_module_ptr

这几行定义了模块的入口,将入口注册到php后,php会通过模块入口找到你写的函数

下面几个函数定义是用宏进行定义的,展开以后其实就是 php3_minit_pconfig , php3_rinit_pconfig ……分别在你的模块初试化或结束时被调用,如果你的模块很简单,也就不需要这些定义了

extern PHP_MINIT_FUNCTION(pconfig);

extern PHP_RINIT_FUNCTION(pconfig);

extern PHP_MSHUTDOWN_FUNCTION(pconfig);

PHP_MINFO_FUNCTION(pconfig);

这是你的函数声明,将来写在php脚本语句中的函数名就是在PHP_FUNCTION中定义的名字。

PHP_FUNCTION(pconfig_test);

如果有多个,还可以继续往下加

PHP_FUNCTION(pconfig_parsefile);

PHP_FUNCTION(pconfig_release); …….

Step 4 =>

接下来我们看最重点的C代码了

function_entry pconfig_functions[] = {

PHP_FE(pconfig_test, NULL)

{NULL, NULL, NULL}

};

定义的是你的函数的入口(前面我们提到过模块的入口),按照格式将你在头文件中定义的函数写进去吧。注意,这是用宏定义的,不要管语法是否正确。以后我们具体讨论这些宏的用法。

php3_module_entry pconfig_module_entry = {

"pconfig", pconfig_functions, PHP_MINIT(pconfig), PHP_MSHUTDOWN(pconfig), PHP_RINIT(pconfig), NULL, PHP_MINFO(pconfig), STANDARD_MODULE_PROPERTIES

};

注册模块的入口信息,比如模块名,函数接口,初试化模块将调用的函数等等,如果你的模块不执行复杂操作的话,可以忽略掉他们,写成

php3_module_entry pconfig_module_entry = {

"pconfig", pconfig_functions, NULL,NULL,NULL,NULL,NULL,STANDARD_MODULE_PROPERTIES

};

Step 5 =>

写你自己的函数

在头文件和function_entry处,我们已经定义了自己的函数pconfig_test,现在我们就来实现pconfig_test的功能。就比如执行两个数相加的和吧。

static void _php3_pconfig_test(INTERNAL_FUNCTION_PARAMETERS)

{ ......

}

PHP_FUNCTION(pconfig_test)

{

_php3_pconfig_test(INTERNAL_FUNCTION_PARAM_PASSTHRU);

}

当系统调用pconfig_test时,会调用你的_php3_pconfig_test函数,当然你也可以把_php3_pconfig_test里的内容直接写在PHP_FUNCTION(pconfig_test)中,这样做只是程序结构比较清晰。注意:不要将_php3_pconfig_test命名成php3_pconfig_test,PHP_FUNCTION(pconfig_test)宏展开后实际上就是php3_pconfig_test!

Step 6 =>

好了,现在我们开始修改configure,在echo $ac_n "checking for MySQL support""... $ac_c" 1>&6的前面(当然,如果你熟悉configure的话,可以加在任何合适的地方)加上下面几句话

if test "${with_pconfig+set}" = set; then

withval="$with_pconfig"

# Add your lib in here

EXTRA_LIBS="$EXTRA_LIBS"

# Add your include path in here

INCLUDES="$INCLUDES"

EXT_SUBDIRS="$EXT_SUBDIRS pconfig"

EXT_LIBS="$EXT_LIBS pconfig/libphpext_pconfig.a"

EXTINFO_DEPS="$EXTINFO_DEPS ../ext/pconfig/extinfo.c.stub"

EXT_STATIC="$EXT_STATIC pconfig"

fi

修改internal_functions.c,在头文件定义中加入#include "ext/pconfig/php3_pconfig.h"

在zend_module_entry数组中加入phpext_pconfig_ptr,

Step 7 =>

从新configure,带上需要的参数,不要忘记的是在参数里加入 --with-pconfig

Step 8 =>

index.php3

<? echo pconfig_test(123,678)."

"; ?>

执行%>php index.php3

在Linux下以什么方式或工具进行PHP开发好?

回答区的大神们推荐的IDE都是我想要的,优秀而且效率。[赞]

IDE是写代码的,我想说一下Linux下进行PHP开发,所需要搭建的环境。

Windows下有哪些工具?

混沌初开,工具链还没有那么完整,我们手动配置环境。

PHP: 修改

php.ini

,添加扩展文件,使用phpinfo()查看是否生效。

Apache:安装服务,修改配置。添加虚拟主机,端口。

MySQL:安装,配置

my.ini

一通下来,web服务器也得配,应用程序也得配,数据库也得配。重复劳作,费工耗时,身心俱疲。

还不说不同版本的切换,有够折腾一下的了。

后来有作者专门把这些工具整合到一起,发布出来给大家用。比如wamp,xamp,用过且不那么灵通。后来遇到PHPStudy,才算感觉到省心省时。

前一段时间说有黑客篡改了phpstudy的发行版,并且释出,有不少线上网站在用。不过官方没有说的哪个版本。所以,如果用,就直接用最新版8.0。

Linux下开发环境搭建

如果您不是想在命令行vim下进行所有的代码开发。还是要用个带桌面的Linux发行版。

体验较好的应该数Ubuntu。界面,工具,环境,都较为齐全。

当然上面phpstudy也有linux版本的,它要求你的系统是干净的,安装完毕之后,没有修改配置过其他服务或软件。这很好理解,LAMP所有的配置,都是系统级的,言外之意:“在我接管你的系统之前,什么人都不要放进来!”

好吧。谁让我们自己不会配呢,只能把家门口打开,让人家东翻西找。

那其实除了phpstudy,在linux下我们还有另外一个选项:BT Panel。宝塔面板。

phpstudy如果用于开发尚可,用于生产,我们一般不用。要么运维同学配置环境,要么使用宝塔面板。

宝塔面板所使用的源码,我们在一定程度上可以定制,可以修改,可以把应用控制在自己手中。毕竟系统级的应用,上线之后,如果处于失控状态,那就太可怕了。

比如bt panel的后台页面,使用python tornado框架开发。

还有许多免费的插件,使用python开发。在出现bug,或者需要修改功能的时候,运维,或者开发的同学,可以直接上手修改源码。

推荐一个MySQL终端

自带的mysql客户端,如果能自动提示,关键字提示,自动补全,像写bash一样舒适,那该多好!

你的心愿,总会实现!mycli!

关键字记不住。没关系,mycli帮你补全;

表名,字段名太长,老打错,没关系,mycli帮你补全。

Linux下开发,数据库是绕不开的。真心好用。

总结

一个顺手的IDE,让你敲代码如飞。

一个顺手的开发环境,让你真正准时下个班,整点睡个觉,少遇到点“为什么我的电脑上好好的”!

以上。

服务器运维管理面板哪个好用?

wgcloud算一个,国人开源的运维监控项目,我们项目中就用的这个来管理服务器,轻巧实用,性能超好,运行稳定,告警及时,而且部署简单,易上手。你们可以体验一下

准备把服务器操作系统从Ubuntu改成CentOS?

完了记得找个好用的监控系统,可以把服务器和应用监控起来,对各种指标状态尽量做到实时感知,以及告警通知。

我们项目中用的wgcloud监控系统,这是国人开源的一个项目,运行一年了稳定灵敏,现在用的免费版,基本够用了,它比zabbix部署要简单多,集成度较高,几乎没有学习成本,agent体积很小,只有6M,运行占用资源也少,性能超好,我们综合对比后选了它。

以下是运行效果图

本文转载自互联网,如有侵权,联系删除