当前位置:首页>

文章列表

>

PHP

PHP header强制下载文件

<?php /* 浏览器下载文件,例如在浏览器中可以直接打开的文件(.gif  /.txt等)。 在进行文件下载操作时,默认是通过浏览器直接打开,而不是下载保存文件。并且通过这种方法下载文件可以不暴漏下载文件所在的路径,可以在下载之前进行一系列的权限控制. 如果强制浏览器下载,有二种方案, 1:把所有文件全部做成压缩文件等浏览器无法识别的格式,操作比较繁琐。 2:通过php操作header,进行强制下载。 下面通过方案二进行文件下载 */ if(isset($_GET['file'])) {     $filename = $_GET['file'];     if(file_exists($filename))     {

陈承阳时间:2018-01-23 20:05:48 分类:PHP阅读全文

PHP标准库SPL实例

SPL是用于解决典型问题(standard problems)的一组接口与类的集合。 递归寻找指定目录中的所需文件 双向链表 栈的应用 - 检测数学表达式 //迭代器-递归树 迭代是常见设计模式之一,普遍应用于一组数据中的统一的遍历操作。可以毫不夸张的说,SPL提供了所有你需要的对应数据类型的迭代器。 ===================遍历目录 常规的做法就是使用 scandir ,然后跳过 . 和 .. ,以及其它未满足条件的文件。例如你需要遍历个某个目录抽取其中的图片文件,就需要判断是否是 png、md 结尾。 下面的代码就是使用 SPL 的迭代器执行上述递归寻找指定目录中的所需文件的例子

陈承阳时间:2018-01-18 22:47:14 分类:PHP阅读全文

PHP安装并使用xhprof性能分析工具

========== 下载 xphrof https://github.com/phacility/xhprof ========== 安装 xhprof cd xhprof/extension/ phpize ./configure make make install ==== 在/etc/php.ini中加入 extension=xhprof.so ==== 查看安装是否成功 php -m | grep xhprof ==== 重启php-fpm kill -INT `cat /usr/local/php/var/run/php-fpm.pid` /usr/local/php/sbin/php-fpm & ========== 运行 xphrof 可以直接运行从github上clone下来的文

陈承阳时间:2018-01-03 21:21:11 分类:PHP阅读全文

开启php-fpm慢日志

==========php-fpm的概念: PHP-FPM是一个PHP FastCGI管理器,是只用于PHP的。相对Spawn-FCGI,PHP-FPM在CPU和内存方面的控制都更胜一筹,而且前者很容易崩溃,必须用crontab进行监控,而PHP-FPM则没有这种烦恼。    PHP5.3.3已经集成php-fpm了,不再是第三方的包了。PHP-FPM提供了更好的PHP进程管理方式,可以有效控制内存和进程、可以平滑重载PHP配置,比spawn-fcgi具有更多优点,所以被PHP官方收录了。在./configure的时候带 –enable-fpm参数即可开启PHP-FPM。 ========== 开启php-fpm慢日志 php-fpm.conf request_slowlog_timeout =5 表示如果哪个脚本执行时间大于5秒,会记录这个脚本到慢日

陈承阳时间:2018-01-03 20:46:45 分类:PHP阅读全文

PHP运行机制答疑(Fastcgi、PHP-FPM)

========== 一些疑惑: 有的说,fastcgi是一个协议,php-fpm实现了这个协议; 有的说,php-fpm是fastcgi进程的管理器,用来管理fastcgi进程的; 有的说,php-fpm是php内核的一个补丁; 有的说,修改了php.ini配置文件后,没办法平滑重启,所以就诞生了php-fpm; 有的说PHP-CGI是PHP自带的FastCGI管理器,那这样的话干吗又弄个php-fpm出来,我就更晕了; ========== 解答: 刚开始对这个问题我也挺纠结的,看了《HTTP权威指南》后,感觉清晰了不少。 CGI是干嘛的?CGI是为了保证web server传递过来的数据是标准格式的,方便CGI程序的编写者。     web server(比如说nginx)只是内容的分发者。比如,如果请求/i

陈承阳时间:2018-01-02 22:12:16 分类:PHP阅读全文

php调用C#SOAP问题

关于php调用C#写的Web Service SOAP 接口的参数传递问题 =========== 知识点 正确的方法是将参数作为二维数组来传,如下所示: $param_ary = array( array("param1"=>$param1,"param2"=>$param2) ); $client->__soapCall("FunctionName",$param_ary); 若php调用php自己写的SOAP服务端,则无需传二维数组。 =========== 实例 $applycode = $request->get('applycode');//获取申请码 $client = new SoapClient("http://ip/aa.asmx?wsdl"); $obj = $client->__soap

陈承阳时间:2017-12-28 21:22:42 分类:PHP阅读全文

区分XML中的四种节点

在PHP解析xml文件时,会遇到如下四种节点,如何在if判断里区分它们?        正常节点        值为空的节点     注释节点(#comment)     空白节点(如回车符#text) ========== 情况1 $node->hasChildNodes() 结果:     √ 正常节点     × 值为空的节点     × 注释节点     × 空

陈承阳时间:2017-12-21 19:39:51 分类:PHP阅读全文

PHPUnit单元测试

====================== 下载安装PHPUnit 在项目目录 D:\phpunit 中复制composer文件composer.phar 在根目录同级的composer.json文件中添加如下代码 {     "require": {         "phpunit/phpunit": "5.7.*"     } }      在项目目录中 D:\phpunit 打开命令行窗口执行: composer update 安装成功后将 D:\phpunit\vendor\bin 设为环境变量,之后任意位置打开命令行窗口执行: phpunit --version 输出&nbs

陈承阳时间:2017-12-19 21:44:55 分类:PHP阅读全文

PHP钩子机制

--定义        开始         ||             ||钩子(挂载点,执行和程序运行不相关的任务,如记录输入参数)         ||      运行方法         ||         ||钩子(挂载点,执行和程序运行不相关的任务,如记录处理结果)         ||&nb

陈承阳时间:2017-11-05 22:53:31 分类:PHP阅读全文

PHP反射及其应用

--定义 反射(Reflection)是指在PHP运行状态中,扩展分析PHP程序,导出或提取出关于类、方法、属性、参数等的详细信息,包括注释。这种动态获取的信息以及动态调用对象的方法的功能称为反射API。反射是操纵面向对象范型中元模型的API,其功能十分强大,可帮助我们构建复杂,可扩展的应用。 其用途如:自动加载插件,自动生成文档,甚至可用来扩充PHP语言。 PHP反射api由若干类组成,可帮助我们用来访问程序的元数据或者同相关的注释交互。借助反射我们可以获取诸如类实现了那些方法,创建一个类的实例(不同于用new创建),调用一个方法(也不同于常规调用),传递参数,动态调用类的静态方法。 反射api是PHP内建的OOP技术扩展,包括一些类,异常和接口,综合使用他们可用来帮助我们分析其它类,接口,方法,属性,方法和扩展。这些OOP扩展被称为反射。

陈承阳时间:2017-11-05 22:52:30 分类:PHP阅读全文


选择页面: