
PHP
文章平均质量分 86
PHP语言
青鬆下的坚躯
liuensong@gmail.com
展开
-
无限分类按分类层级重新排序方法
初始数据:$values = [ 0 => ["id" => 1, "product_style_name" => "话筒", "pid" => 0], 1 => ["id" => 17, "product_style_name" => "配件", "pid" => 0], 2 => ["id" => 2, ...原创 2020-01-18 17:23:34 · 846 阅读 · 0 评论 -
限流算法之令牌桶算法、漏铜算法
常见的限流算法有:令牌桶、漏桶。计数器也可以用来进行粗暴限流实现。令牌桶算法:令牌桶算法,是一个存放固定容量令牌的桶,按照固定速率往桶里添加令牌。令牌桶算法的描述如下。假设限制2r/s,则按照500毫秒的固定速率往桶中添加令牌。 桶中最多存放b 个令牌,当桶满时,新添加的令牌被丢弃或拒绝。 当一个n 个字节大小的数据包到达,将从桶中删除n 个令牌,接着数据包被发送到网络上。 如果...原创 2020-01-14 01:12:18 · 1167 阅读 · 1 评论 -
栈实战之检查括号是否闭合
实现步骤:1、先准备一个空栈$stack,然后从左至右读取代码每个字符。2、如果读到的是左括号,就将其压入栈中,意味着后面需要有对应的右括号左闭合。3、如果读到的是右括号,就查看栈顶的元素是否匹配。如果匹配则弹出。4、最后检查栈是否为空。空表示闭合,否则为没有闭合。实现代码:/*** 检查括号是否闭合* @param string $str* @return boo...原创 2020-01-02 17:18:43 · 504 阅读 · 0 评论 -
排序算法之插入排序
插入排序算法的原理如下:1、在第一轮里,暂时讲索引1的值抽出,并保存至临时变量中。2、接着是平移阶段,我们会拿空隙左侧的每一个值域临时变量的值进行比较。3、如果该值大于临时变量值,则将该值右移,否则把临时变量值插入当前位置。4、重复步骤1~3,直到数组完成排序。插入排序算法流程图:-插入排序时间复杂度:插入排序代码实现:/** * 插入排序 * @pa...原创 2020-01-02 02:31:25 · 571 阅读 · 1 评论 -
排序算法之选择排序
选择排序算法的原理如下:1、从左到右检查数组的每个元素,找出值最小的那个值索引并记录下来。2、将步骤1记录下的最小值索引与本次检查的起点索引交换(第1次起点0,第2次起点1,第n次起点n-1)。3、重复步骤1和步骤2,直到数组排好序。选择排序算法流程图:选择排序时间复杂度:忽略常数项即:选择排序代码实现:/** * 选择排序 * @param arra...原创 2020-01-02 01:31:31 · 312 阅读 · 0 评论 -
php依赖注入的三种方式
控制反转(Inversion of Control,缩写为IoC),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。其中最常见的方式叫做依赖注入(Dependency Injection,简称DI)。下面我们就为大家介绍一下php依赖注入的三种方式。一、构造器注入 将被依赖对象通过构造函数的参数注入给依赖对象,并且在初始化对象的时候注入。优点: 对象初始化完...转载 2019-12-30 17:54:02 · 4481 阅读 · 0 评论 -
php实现伪静态的方法
mod_rewrite是Apache的一个非常强大的功能,它可以实现伪静态页面。下面我详细说说它的使用方法1.检测Apache是否支持mod_rewrite通过php提供的phpinfo()函数查看环境配置,通过Ctrl+F查找到“Loaded Modules”,其中列出了所有apache2handler已经开启的模块,如果里面包括“mod_rewrite”,则已经支持,不再需要继续设置。如果没有...原创 2013-01-04 15:40:47 · 589 阅读 · 0 评论 -
PHP调试工具Xdebug安装配置教程
说道PHP代码调试,对于有经验的PHPer,通过echo、print_r、var_dump函数,或PHP开发工具zend studio、editplus可解决大部分问题,但是对于PHP入门学习的童鞋来说有一定的难度,而且仅仅通过上述这些PHP调试手段,也很难准确发现PHP性能方面的问题,Xdebug是一个非常有用的PHP调试工具。 Xdebug作为PHP调试工具,提供了丰富的调试函数,也可将...转载 2011-08-16 10:17:26 · 453 阅读 · 0 评论 -
rabbits php实现文件下载!
来自:php实现文件下载! public function downloads($name){ $name_tmp = explode("_",$name); $type = $name_tmp[0]; $file_time = explode(".",$name_tmp[3]); $file_time = $file_time[0]; $file_date = da...转载 2011-08-25 15:14:12 · 410 阅读 · 0 评论 -
10 个救命的 PHP 代码片段
关键词 function highlight($sString, $aWords) { if (!is_array ($aWords) || emptyempty ($aWords) || !is_string ($sString)) { return false; } $sWords...转载 2011-09-06 10:27:17 · 671 阅读 · 0 评论 -
PDO函数属性详解
PDO是一个“数据库访问抽象层”,作用是统一各种数据库的访问接口,与mysql和mysqli的函数库相比,PDO让跨数据库的使用更具有亲和力;与 ADODB和MDB2相比,PDO更高效。目前而言,实现“数据库抽象层”任重而道远,使用PDO这样的“数据库访问抽象层”是一个不错的选择。PDO->beginTransaction() — 标明回滚起始点PDO->commit() — 标明...转载 2011-11-02 13:55:26 · 569 阅读 · 0 评论 -
php开发模式之单例模式定义
单例模式类必要的三大元素:1、必须拥有一个保存类的实例的静态成员变量。2、必须拥有一个构造函数,访问级别必须是private(私有的)。3、必须拥有一个访问类的实例的公共的静态方法,通常被命名为getInstance()。4、包含一个魔术方法__clone(),方式对象被复制或克隆。单例模式类特点:1、不能直接实例化。2、只能被自身实例化。单例模式类定义方法: ...原创 2012-08-16 18:29:39 · 694 阅读 · 0 评论 -
PHP 爬虫记录
数据库设计 create table crawler ( crawler_ID bigint(20) unsigned not null auto_increment primary key, crawler_category varchar(20) not null, crawler_date datetime not null de...转载 2012-04-25 15:29:44 · 1105 阅读 · 0 评论 -
用PHP制作饼图调查表
在调查程序中,我们需要根据统计的数据来 生成各种图表来生动的表示调查的百分比 。在PHP在这方面也是不负众望,它中可以通过加载GD库来实现一开始。饼状图表对于查看一个值占总值的百分比是一个好的方法。现在我们就用PHP来实现一个饼形图表,给大家讲述PHP在这方面的应用。它的设计思想是:首先以用imagecreate()来生成一个空白图形,然后在空白图形中用imageare()圆弧函数先画圆弧,再画两...转载 2012-03-06 10:30:37 · 577 阅读 · 0 评论 -
在PHP中操作MySQL要注意哪些问题?
1、分号的例外 在MySQL中,每一行命令都是用分号(;)作为结束的,但是当一行MySQL命令被插入在PHP代码中时,最好把后面的分号省略掉,例如: mysql_query ("INSERT INTO tablename (first_name, last_name) VALUES ('$first_name', '$last_name')"); 这是因为PHP也是以分号作为...转载 2012-03-06 08:54:59 · 484 阅读 · 0 评论 -
php 汉语转换拼音
<?php/*************************************************************************** * Pinyin.php * ------------------------------ * Date : Nov 7, 2006 * Copyright : 修改自网络代码,版权归原作者所有 * Mail :...转载 2012-02-03 09:36:51 · 1550 阅读 · 0 评论 -
PHPMailer邮件类的使用教程
什么是phpmailer PHPMailer是一个用于发送电子邮件的PHP函数包。它提供的功能包括: *.在发送邮时指定多个收件人,抄送地址,暗送地址和回复地址 *.支持多种邮件编码包括:8bit,base64,binary和quoted-printable *.支持SMTP验证 *.支持冗余SMTP服务器 *.支持带附件的邮件和Html格式的邮件 *.自定义...转载 2012-08-03 10:47:19 · 1545 阅读 · 0 评论 -
php开发模式之工厂模式定义
工厂模式定义:工厂模式是指一个包含专门用来创建其他对象的的方法的类。工厂模式常规用法:创建多态的提供者,允许我们基于程序逻辑或配置设置来决定应该你实例化那个类。工厂模式构造规则:1、包含一个公共的静态方法,一般命名为factory()。2、必须返回一个对象。工厂模式代码示例: /*********************************** * 工厂...原创 2012-08-17 10:06:28 · 748 阅读 · 0 评论 -
排序之快速排序
快速排序是通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。 /** * @param array $numbers 需要排序的数字组 * @return array **/function ks_sort($numbers){ ...原创 2014-06-30 13:30:48 · 1442 阅读 · 0 评论 -
排序法之冒泡排序
相邻两个数比较并交换顺序,直到最后一个数字。 /** * 排序之冒泡排序法 * @param array $numbers 需要排序的数字组 * @param string asc/desc 顺序OR倒序 * @return array **/function mp_sort($numbers, $sc="asc"){ if(is_array($numbers) &a...原创 2014-06-30 11:25:19 · 1725 阅读 · 0 评论 -
最简单快速的排序法之桶排法
前提:0-100内的随机数N个,实现从小到大(从大到小)排序。实现:新建一个长度为101的数组,value初始化为0。数组每个key代表0-100中的数字,value值表示0-100中任意一个数组的出现次数。通俗点说就是每个key代表一个桶,我们有101个桶,每个桶上表上数字0-100。把要排序的数字扔到对应的桶里,桶里扔一个数字时相应的key的value值就+1,表示桶里有几个数字。...原创 2014-06-26 17:30:59 · 2832 阅读 · 0 评论 -
Web性能最佳实践
Web性能最佳实践当你分析一个网页,网页速度,它的计算结果页面的一些不同的规则的一致性 。这些规则是一般的前端最佳实践,你可以应用在任何的网络发展阶段。我们这里的每一个规则的文件,所以您是否运行了网页速度的工具-也许你只是开发一个全新的网站,并没有准备好测试-在任何时候,你可以参考这些网页。我们给你具体的提示和建议,如何能够最好地执行规则,将它们纳入你的开发过程中。关于性能的最佳做法...转载 2012-10-16 13:56:23 · 842 阅读 · 0 评论 -
FreeBSD8.0搭建Apache+PHP+MySql平台
基于FreeBSD 8.0搭建的Apache+PHP+MySql平台所使用的软件版本:FreeBSD 8.0 releaseApache 2.2.14_5PHP 5.2.12MySql 5.1.45首先最小化安装FreeBSD, 设置好网络. 启动FreeBSD, 登录管理员帐号root, 安装Ports.(最小化安装是没有ports的, 所以我们接下来先从光盘安装ports)运行 ...转载 2011-10-10 15:20:06 · 1270 阅读 · 0 评论 -
如何分析源码
怎样在一天时间里快速入门一个产品的二次开发呢,二次开发有什么技巧或途径呢?我这里谈谈自己的一些体会和经验,一家之谈,也许也很怪异,每个人都有自己的开发模式,仅供参考。下面的是我在经历了ECSHOP和织梦系统后总结出来的一套思路。第一次开发用了两天时间,此前从来没有接触过这个产品,也没做过二次开发。下面的前提是你有一定的语言基础和数据库常识,通常,这样的入门是很简单的。前提:智商70...转载 2011-10-31 10:27:11 · 637 阅读 · 0 评论 -
排序算法之快速排序
高快省的排序算法有没有既不浪费空间又可以快一点的排序算法呢?那就是“快速排序”啦!光听这个名字是不是就觉得很高端呢。假设我们现在对“6 1 2 7 9 3 4 5 10 8”这个10个数进行排序。首先在这个序列中随便找一个数作为基准数(不要被这个名词吓到了,就是一个用来参照的数,待会你就知道它用来做啥的了)。为了方便,就让第一个数6作为基准数吧。接下来,需要将这个序列中所有比...转载 2014-03-04 11:01:51 · 18076 阅读 · 11 评论 -
php编译完成后,module追加编译进php
# 如果在编译的时候忘记添加某些模块,可以使用这种办法来重新编译添加!# 首先,进入PHP目录(未编译)的扩展目录cd /home/soft/php-5.2.14/ext/ftp/# 调用phpize程序生成编译配置文件# find / -name phpize/usr/local/php/bin/phpizeConfiguring for:PHP Api Version: ...转载 2014-01-08 22:59:10 · 1836 阅读 · 0 评论 -
PHP MVC结构系统架构设计
今天研究了下PHP MVC结构,所以决定自己写个简单的MVC,以待以后有空再丰富。至于什么MVC结构,其实就是三个Model,Contraller,View单词的简称,,Model,主要任务就是把数据库或者其他文件系统的数据按 照我们需要的方式读取出来。View,主要负责页面的,把数据以html的形式显示给用户。Controller,主要负责业务逻辑,根据用户的 Request进行请求的分配,比如...转载 2013-12-29 00:31:00 · 1123 阅读 · 0 评论 -
类似explode, 但不分割指定符号内的字符.
/** * 类似explode, 但不分割指定符号内的字符. * @param string $str * @param string $pattern 匹配指定符号内的正则 * @param string $replacement 暂时替换成的字符串 * @return array $data 分割之后的数组 */function str2arr($str, $pattern='...原创 2013-05-10 16:50:02 · 1143 阅读 · 0 评论 -
PHP获取图片等比例高度
/** * 获取等比高宽 * @param string $image_path 最大宽度 * @param int $max_width 最大宽度 * @param int $max_height 最大高度 */function getRatioSize($image_path, $max_width='', $max_height=''){ list($width, $heig...原创 2013-03-20 15:45:23 · 1616 阅读 · 0 评论 -
php用Simple Excel导出xls
因为前几天写了篇文章,用php-excel-reader类导入excel内容,顺便说些excel导出问题,我用的是simple excel,一个很简单的导出xls类,特好用!simple excel源码如下: <?php /** * Simple excel generating from PHP5 * * @package Utilities * @license...转载 2012-12-12 14:40:41 · 1151 阅读 · 0 评论 -
PHP 图片添加水印
$tmp_file = "watermark1.png"; $pin_image = "aaa.jpg";function add_watermark($image, $water_image,$num){ //原图 $size = getimagesize($image); switch($size['mime']){ case 'image/gif': $dst_...原创 2012-12-06 11:55:12 · 741 阅读 · 0 评论 -
PHP模拟POST提交数据函数
function vpost($url,$data){ // 模拟提交数据函数 $curl = curl_init(); // 启动一个CURL会话 curl_setopt($curl, CURLOPT_URL, $url); // 要访问的地址 curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 对认证证书来源的检查 ...转载 2012-12-06 11:54:12 · 1659 阅读 · 0 评论 -
php精简日历
<table> <caption> <?=date('Y年m月')?> </caption> <thead> <tr> <th scope="col" title="星期一">一</th> <th scop原创 2012-11-20 18:58:35 · 671 阅读 · 0 评论 -
PHP快速开发工具箱:轻松解决PHP日常编程问题的100个插件,在线
转自:http://blog.youkuaiyun.com/manbujingxin/article/category/899884/5转载 2012-10-09 18:10:45 · 1220 阅读 · 0 评论 -
PHP出现Notice: unserialize() [function.unserialize]: Error at offset问题的解决方案
今天的用PHP的时候无意的出现了用unserialize()函数转换老是返回false,我确认我的字符串是没错的,测试了很多次还是一样,没办法,启用了error_reporting(E_ALL)启用错误信息,没想到发现了Notice: unserialize() [function.unserialize]: Error at offset的信息, 因为我字符我是从数组转换过来的,所以应该是没...转载 2012-09-04 14:51:05 · 657 阅读 · 0 评论 -
LINUX下安装APACHE+PHP+MYSQL
安装用到的命令 yum ,需要你的linux可以联网。相对来所比较简单快捷,偶也是个新新linux手我的linux是centos 5.5,个人感觉是最稳定的一个版本。。 安装过程:1。安装apache:#yum install apache 相关扩展文件#yum install httpd-manual mod_ssl mod_perl mod_auth_mysq...原创 2011-08-31 00:02:14 · 688 阅读 · 0 评论