php
文章平均质量分 52
风清扬-独孤九剑
后端技术专家
展开
-
设计模式一详解
当一个对象状态发生改变时,依赖它的对象全部会收到通知,并自动更新场景:一个事件发生后,要执行一连串更新操作。传统的编程方式,就是在事件的代码之后直接加入处理逻辑。当更新的逻辑增多之后,代码会变得难以维护。这种方式是藕合的,侵入式的,增加新的逻辑需要修改事件主体的代码观察者模式实现了低耦合,非侵入式的通知与更新机制上面的interface{} 为每个实例提供了统一的方法,那么抽象方法提供了添加实例以及统一遍历实例的方法。适配器模式,可以将截然不同的函数接口封装成统一的API实际应用举例,PHP 的数据库原创 2024-03-28 17:22:25 · 558 阅读 · 0 评论 -
php 异常错误处理
由于历史原因,php一开始被设计为一门面向过程的语言,所以异常处理没有使用像Java一样的 try / catch 机制,出错时直接显示到页面上,或者记录到web服务器的错误日志中,并且php的错误分成了很多的级别,例如E_ERROR、E_WARNING、E_PARSE、E_NOTICE等等,对于像E_ERROR、E_PARSE这样的严重错误,php会直接终止脚本的运行。虽然对于php5版本,...原创 2020-04-22 16:50:02 · 236 阅读 · 0 评论 -
php 实现时间任务代码
<?php ignore_user_abort(true);set_time_limit(0);while(true){ if(!ob_get_level()) ob_start(); if(!connection_aborted()){ echo str_repeat(' ', 4096); file_put_contents('D:\a.txt',date("Y-原创 2015-01-21 15:27:26 · 575 阅读 · 0 评论 -
用 json 实现跨域,实现数据的交换
前不久突然想到了,如果我的数据在后台,那么如何把数据,放到前台,进行处理,前后台不在一个域中,那么怎么数据跨域了,我想到了用json 操作。后台的代码如下: ht.php $ar=array('a'=>'你好','b'=>'他们','d'=>'中国'); $json_str=json_encode($ar); echo "getProfile($json_str)"; 关于js原创 2015-01-11 17:27:48 · 568 阅读 · 0 评论 -
php 类和对象
面向对象,是当今编程的主流,对于研发人员,可能对面向对象,多多少少的有一些认识,但是有些不常用的或许不是特别清楚。有时也是很有用的。下面就介绍几点知识。 一、final 关键字的一些知识: 1、final 关键字作为方法是可以被子类继承的。如下面: class A{ final function operation(){ echo 'a原创 2015-01-06 19:45:34 · 633 阅读 · 0 评论 -
关于 codeigniter 前后台目录搭建问题
最近做项目一直用的是codeigniter ,codeigniter 是个轻量级的框架,本身并没有集成smarty ,所以给开发者很大的空间。 虽说一直在新浪做项目,无法使改改数据什么的,这是个内部用的系统所以只有后台,我在想既然用了这个框架,就把它用好。 于是就研究了一个如何搭建前,后台的目录。在网上也找了些资料,用了一下都没成功,就自己用了自己的方法,真可谓仁者见仁,志原创 2014-12-17 15:37:39 · 1817 阅读 · 2 评论 -
php 连接redis 数据库单利类
<?phpclass RedisConnect{ /** * Redis的ip * * @var string */ const REDISHOSTNAME = "127.0.0.1"; /** * Redis的port * * @var int */ const RED原创 2014-12-16 20:20:13 · 2067 阅读 · 0 评论 -
php 5.3新增的闭包语法介绍function() use() {}
/** * author: selfimpr * mail: lgg860911@yahoo.com.cn * blog: http://blog.csdn.net/lgg201 * 下面提到的代码在PHP5.3以上版本运行通过. */function callback($callback) {$callback();}//输出: This is a anony转载 2014-10-14 17:27:47 · 1112 阅读 · 0 评论 -
用php 把数组中偶数,选择出来
我有这样的一个小算法,把数组中的所有的偶数或技术分别选择出来。很多人可能,会循环这个数组,而我恰恰不循环数组就能做到这一点,代码如下。 function odd($var){ // returns whether the input integer is odd return($var & 1);}function even($var){ // ret原创 2014-10-13 15:57:01 · 3743 阅读 · 0 评论 -
php 算法之分割数组,不用array_chunk(),算法之二,取数组的差值,不用array_diff()
用php写算法分割数组,不用array_chunk();算法如下所示。<?phpfunction array_chunk_list($array, $size, $preserve_keys = false){ reset($array); $i = 0; foreach ($array as $key => $value) { // 是否存在这个原创 2014-10-10 16:35:14 · 1623 阅读 · 0 评论 -
多个二维数组如何取出它们的交集
一维数组取交集是非常的简单,直接用一个函数即可。array_intersect($arr, $ar),那么二维数组又是如何的取出它们的交集呢,可能有人同样想用这个函数,但结果却不是我们想要的。下面有这样的一个数组: $arr=array( array('a'=>'1',2), array(3,4) ); $ar=array( array('a'原创 2014-10-29 10:30:13 · 7668 阅读 · 1 评论 -
笔记 ci 的http 请求
$url =site_url('information/inforation/gethttp'); $data = array ( 'name' => $name ); $ch = curl_init (); curl_setopt ( $ch, CURLOPT_URL, $url);转载 2015-01-14 11:24:02 · 917 阅读 · 0 评论 -
PHP的输出缓冲区
PHP的输出缓冲区什么是缓冲区?简单而言,缓冲区的作用就是,把输入或者输出的内容先放进内存,而不显示或者读取.至于为什么要有缓冲区,这是一个很广泛的问题,如果有兴趣,可以在网山找下资料.其实缓冲区最本质的作用就是,协调高速CPU和相对缓慢的IO设备(磁盘等)的运作. PHP在执行的时候,在什么地方有用到缓冲区?想要了解PHP的缓冲区,就要知道执行PHP的时候,缓冲区原创 2014-12-30 17:18:36 · 676 阅读 · 0 评论 -
php 编译
sudo apt-get install build-essential libexpat1-dev libgeoip-dev libpng-dev libpcre3-dev libssl-dev libxml2-dev rcs zlib1g-dev libmcrypt-dev libcurl4-openssl-dev libjpeg-dev libpng-dev libwebp-dev pkg-原创 2017-10-13 17:17:24 · 281 阅读 · 0 评论 -
ubuntu 编译 mssql
一、mssql 是连接 sql server 扩展二、我用的ubuntu 系统,于是在执行命令 apt-get install php5-sybase 发现并不行三、于是源码编译1、找到源码2、运行phpize3、编译 ./configure --with-php-config=/usr/local/php/bin/php-config原创 2016-11-02 16:23:26 · 647 阅读 · 0 评论 -
将一个二维数组合并成一个一维数组
大家都知道php有内置的数组合并函数array_merage($arr,$arr1,$arr2,$arr3);那如何把一个二维数组如array(array('a'=>1,'b'=>2),array('c'=>3,'d'=>4)) 合并成如下的数组 array('a'=>1,'b'=>2,'c'=>3,'d'=>4);似乎,php目前还没有这样的内置函数吧,于是自己动手写了两种方法,仅供大家参原创 2014-10-09 20:26:42 · 7590 阅读 · 0 评论 -
php 算法之------------如何打印出下图
自己偶尔看到了下图,于是用php打印出下图。 两种方法解决此问题: 方法一:根据图分析该图是一个二维数组,可用二维数组解决此类问题,6行就是6个数组,每一行就代表数组有多少个元素。知道每个数组元素的个数,不就可以知道数组中有哪几个元素吗? function array_chunk_vertical($arr, $原创 2014-10-10 15:02:36 · 1487 阅读 · 0 评论 -
php 把一个数组分成有n个元素的二维数组的算法
<?php //把一个数组分成几个数组 //$arr 是数组 //$num 是数组的个数 function partition($arr,$num){ //数组的个数 $listcount=count($arr); //分成$num 个数组每个数组是多少个元素 $parem=floor($listcount/$num);原创 2014-10-09 16:23:44 · 3287 阅读 · 0 评论 -
PHP关联数组与哈希表(hash table) 不指定
PHP中有一种数据类型非常重要,它就是关联数组,又称为哈希表(hash table),是一种非常好用的数据结构。在程序中,我们可能会遇到需要消重的问题,举一个最简单的模型:有一份用户名列表,存储了 10000 个用户名,没有重复项;还有一份黑名单列表,存储了 2000 个用户名,格式与用户名列表相同;现在需要从用户名列表中删除处在黑名单里的用户名,要求用尽量快的时间处理。原创 2014-06-30 15:03:20 · 1240 阅读 · 0 评论 -
PHP 生成.csv 文件并下载到浏览器
最近做了一个项目需要把订单的信息显示出来,并且能够把相关信息放到一个.csv 文件中,下载到浏览器。首先我要说明的是.csv 文件,PHP 有专门的函数去解析该类型的文件,相关函数大家可以去官网查看。注意.csv 文件内容的编码格式是gbk格式的,所以有必要对字符格式进行转码。文件的样式如下。原创 2014-07-18 09:40:10 · 4190 阅读 · 3 评论 -
PHP中http协议详解
对PHP文件来说 Php可以有 html css javascript php脚本 flash它的不同部分是在不同的地方执行的(服务器和客户端) http协议1. http协议是建立在 tcp/ip协议基础上2. 我们的web开发数据的传输都是依赖于http协议3. http协议全称是超文本传输协议 http协议的 http请求 基原创 2014-07-02 17:30:59 · 1016 阅读 · 0 评论 -
nginx 配置web 虚拟目录 并且codeIgniter,thinkphp 重定向url 地址
nginx 配置虚拟目录并且url 重写 server { #侦听80端口 listen 8090; #定义使用www.xx.com访问 server_name 127.0.0.1; #设定本虚拟主机的访问日志 access_log /var/log/nginx/access.log;原创 2014-07-01 00:32:07 · 2404 阅读 · 0 评论 -
读取两文件,不同的内容存入另一个文件中
<?php/** * 从两个.csv 文件中读出数据 * 比较这两个文件不同的数据,并存入.csv 文件中 */class Readfiledata { private function __construct() { } /** * 读文件并获取数据 */ private static function getdata($file) { $handle = f原创 2014-07-25 00:23:46 · 1877 阅读 · 0 评论 -
多维数组计算差集
大家都知道一维数组计算差集的内置函数是array_diff_assoc($array1, $array2),但是多维数组如何计算差集呢,就需要写一个相应的算法。我写了一个算法供大家参考。 <?php//多维数组的差集function array_diff_assoc_recursive($array1,$array2){ $diffarray=array(); f原创 2014-10-09 14:40:10 · 3492 阅读 · 0 评论 -
解析为何 array_column不可用,
前不久,自己在一个小项目上,想取出一个二维数组每个元素的一个key的值,组成一个一维数组,突然想到了php 中有个函数可以实现. $array = array ( array ( "id" => 12, "name" => "Karl" ), array ( "id" => 4, "name" => "Franz" ), a原创 2014-10-26 21:51:34 · 5272 阅读 · 2 评论 -
php 开发技巧一
下面是九个PHP中很有用的功能,不知道你用过了吗?1. 函数的任意数目的参数你可能知道PHP允许你定义一个默认参数的函数。但你可能并不知道PHP还允许你定义一个完全任意的参数的函数下面是一个示例向你展示了默认... 1. 函数的任意数目的参数你可能知道PHP允许你定义一个默认参数的函数。但你可能并不知道PHP还允许你定义一个完全任意的参数的函数下面是一个示例向原创 2014-10-23 13:09:11 · 889 阅读 · 0 评论 -
PHP多种序列化/反序列化的方法
序列化是将变量转换为可保存或传输的字符串的过程;反序列化就是在适当的时候把这个字符串再转化成原来的变量使用。这两个过程结合起来,可以轻松地存储和传输数据,使程序更具维护性。1. serialize和unserialize函数这两个是序列化和反序列化PHP中数据的常用函数。<?php$a = array('a' => 'Apple' ,'b' => 'banana原创 2014-10-23 10:17:13 · 593 阅读 · 0 评论 -
算法之-归并排序算法,插入排序算法
归并排序是效率还是比较高的算法。其中的分治法是常用的一种解决问题的方法,现在流行的云计算其实就是一种分治法的应用。所谓的分治法,字面解释就是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个思想在实际工作中的作用非常大,特别是处理大数据和做复杂运算的时候。归并排序的基础是归并操作merge,即将原创 2014-09-17 20:25:58 · 890 阅读 · 0 评论 -
php 基础算法(用*表示金字塔)通过hash 比较两个数组相同的数
* *** ***** ******* ********************上图php代码如下<?phpfor($i=1;$i<=6;$i++){ for($z=5;$z>=$i;$z--){ echo " "; } for($j=1;$j<=2*$i-1;$j++){ echo "*"; } echo "";}原创 2014-07-16 00:47:17 · 1684 阅读 · 0 评论 -
php 二分查找法算法详解
一、概念:二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子原创 2014-08-04 21:01:09 · 2342 阅读 · 0 评论 -
页面自动跳转的几种实现方法
引自http://www.gxblk.com/pc/no12/15.php很多时候我们需要Web页具备有自动跳转功能,例如,论坛中的用户登录、发帖及回复或留言簿中的留言和回复等操作成功后,若用户没有任何鼠标点击操作,过了一定的时间,页面自动跳转到预设的页面。本文讨论网页自动跳转的几种实现方法。方法一:使用meta标签meta标签是html不可或缺的标签之一,它负责提供文档的元信原创 2014-07-10 10:12:49 · 42924 阅读 · 0 评论