多版本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,运行占用资源也少,性能超好,我们综合对比后选了它。
以下是运行效果图