
Php
文章平均质量分 57
暖心欧巴丶
梦是用来追的,停下脚步就没有梦想可言!
展开
-
无限级分类
/** * @desc Recursive traversal data * @array need reorder array * @num the together pid for parent * @parent parent key * @chrild chrild key */public static function recursive($array, $num , $原创 2016-02-18 13:42:39 · 315 阅读 · 0 评论 -
PHP错误级别详解
在PHP开发的时候常常会用到error_reporting(report_level)来调试自己的程序,下面列出了report_level可能值:值常量描述1E_ERROR这是一个严重错误,不可恢复,如位置异常,内存不足等2E_WARNING警告,最一般的错误,如函数的参数错误等4E_PARSE解析错误,在解析PH原创 2016-02-22 09:21:30 · 659 阅读 · 0 评论 -
PHP如何将字符首字母大小写转换
每个单词的首字母转换为大写:ucwords()<?php$foo = 'hello world!';$foo = ucwords($foo); // Hello World!$bar = 'HELLO WORLD!';$bar = ucwords($bar); // HELLO WORLD!$bar = ucwords(strtolowe原创 2016-02-22 09:24:33 · 332 阅读 · 0 评论 -
图片处理类库PHPThumb
【强烈推荐】下载地址(github.com/masterexploder/PHPThumb)。注意这个类库有一个重名的叫phpThumb,只是大小写的差别,所以查找文档的时候千万注意。在网站建设过程中,需要处理图片的地方多不胜数,用PHP的图片函数处理图片,十分繁琐。而且对新手来讲十分不好掌握。现在我们可以用PHPThumb类库来处理图片,包括,图片尺寸调整,图片截取,图片加水印,图片旋转转载 2016-02-22 09:26:46 · 978 阅读 · 0 评论 -
PHP线程安全和非线程安全的区别
Windows版的PHP从版本5.2.1开始有Thread Safe。这两者不同在于何处?到底应该用哪种?这里做一个简单的介绍。从2000年10月20日发布的第一个Windows版的PHP3.0.17开始的都是线程安全的版本,这是由于与Linux/Unix系统是采用 多进程的工作方式不同的是Windows系统是采用多线程的工作方式。如果在IIS下以CGI方式运行PHP会非常慢,这是由于CG原创 2016-02-22 09:29:21 · 404 阅读 · 0 评论 -
PHP二维数组排序
/** * 对二维数组进行排序 * 模拟 数据表记录按字段排序 * * * @list_order($list, $get['orderKey'], $get['orderType']); * * @param array $array 要排序的数组 * @param string $orderKey 排序关键字/字段 * @param string $orderType原创 2016-02-25 08:45:13 · 294 阅读 · 0 评论 -
PHP反射(ReflectionClass、ReflectionMethod)在ThinkPHP框架的控制器调度模块中的应用
ThinkPHP框架的控制器模块是如何实现 前控制器、后控制器,及如何执行带参数的方法?PHP系统自带的 ReflectionClass、ReflectionMethod 类,可以反射用户自定义类的中属性,方法的权限和参数等信息,通过这些信息可以准确的控制方法的执行。ReflectionClass: [PHP手册]详情主要用的方法:hasMethod(string) 是否存转载 2016-02-26 13:58:45 · 3291 阅读 · 0 评论 -
exit()与die()在PHP中的区别
先思考一个问题:如下代码会向页面显示什么?<?phpdie(123);?>曾经有段时间我一直认为 页面会显示 123,但实践结果告诉我,答案错了,页面一片空白!一直不知道为什么,死活不输出123,为了让页面输出123,我把它修改为如下代码:<?phpecho '123';die();?>网上的一段资料:PHP中exit()与die()的区别PHP手册:die(原创 2016-02-26 14:01:56 · 493 阅读 · 0 评论 -
php将字符首字母大小写转换
每个单词的首字母转换为大写:ucwords()<?php$foo = 'hello world!';$foo = ucwords($foo); // Hello World!$bar = 'HELLO WORLD!';$bar = ucwords($bar); // HELLO WORLD!$bar = ucwords(strtol原创 2016-04-08 10:17:16 · 489 阅读 · 0 评论 -
自定义PHP页面跳转函数redirect($url, $time = 0, $msg = '')
利用PHP的header()函数,可以实现页面跳转,如header("Location: " . $url);但它有个缺点,一旦HTTP报头块已经发送,就不能使用 header() 函数,来发送其它的标头。这个时候只能利用前端HTML或JS技术来实现页面跳转了!怎样知道HTTP报头块已经发送了呢?PHP的 headers_sent() 函数,可以帮忙。原创 2016-04-08 10:22:26 · 10423 阅读 · 0 评论 -
关于HTML标签的反转义函数
最近在项目中需要用到HTML标签的过滤功能最开始认为使用strip_tags 能满足该需求最后才发现 从数据库取出来的HTML标签都被转义了一次 导致strip_tags在过滤时失效了经过查阅资料才发现 首先需要将HTML标签反转义回来才能进行过滤 html_entity_decode() 函数是 htmlentities() 函数的反函数所以在处理前需要经过h原创 2016-07-15 11:08:19 · 1718 阅读 · 0 评论 -
PHP判断变量是否存在及函数isset() 、empty()与is_null的区别
一、举例说明A.如何判断一个变量是否定义?<?php// 假设不存在$test 变量if (isset($test)){ echo '$test 已经set', '';}else{ echo '$test 没有set', '';}if (empty($test)){ echo '$test 为empty', '';}else{ echo '$test 不转载 2016-02-22 08:59:47 · 967 阅读 · 0 评论 -
PHP 文件夹文件的拷贝/复制
/** * 文件夹文件拷贝 * * @param string $src 来源文件夹 * @param string $dst 目的地文件夹 * @return bool */function dir_copy($src = '', $dst = ''){ if (empty($src) || empty($dst)) { return false; } $dir =原创 2016-02-22 08:58:08 · 366 阅读 · 0 评论 -
PHP不同字符集字符串长度的计算
主要介绍两种字符集下(GBK,UTF-8)下,字符串长度的计算。GBK字符串长度function strlen_gbk($str){ $len = strlen($str); $i = 0; while ($i < $len) { if (preg_match("/^[" . chr(0xa1) . "-" . chr(0xff) . "]+$/", $str[$i]))原创 2016-02-18 14:02:40 · 318 阅读 · 0 评论 -
PHP array_multisort() 函数详解 及 二维数组排序(模拟数据表记录按字段排序)
一、先看最简单的情况。有两个数组:$arr1 = array(1, 9, 5);$arr2 = array(6, 2, 4);array_multisort($arr1, $arr2);print_r($arr1); // 得到的顺序是1,5,9print_r($arr2); // 得到的顺序是6,4,2我估计两个数组的值自始至终都是对应着的:1对应6,9对应2,5对应4。转载 2016-02-18 13:49:45 · 318 阅读 · 0 评论 -
PHP如何快速读取大文件
在PHP中,对于文件的读取时,最快捷的方式莫过于使用一些诸如file、file_get_contents之类的函数,简简单单的几行代码就能 很漂亮的完成我们所需要的功能。但当所操作的文件是一个比较大的文件时,这些函数可能就显的力不从心, 下面将从一个需求入手来说明对于读取大文件时,常用的操作方法。需求需求有一个800M的日志文件,大约有500多万行, 用PHP返回最后几行的内容。实现方原创 2016-02-18 14:09:39 · 406 阅读 · 0 评论 -
PHP实用图片压缩方法
<?php/** * 说明:函数功能是把一个图像裁剪为任意大小的图像,图像不变形 * 参数说明:输入 需要处理图片的 文件名,生成新图片的保存文件名,生成新图片的宽,生成新图片的高 */// 获得任意大小图像,不足地方拉伸,不产生变形,不留下空白function my_image_resize($src_file, $dst_file, $new_width, $new_height)原创 2016-02-18 16:05:05 · 377 阅读 · 0 评论 -
PHP函数篇之( mysql_real_escape_string 与 addslashes )的区别
addslashes 和 mysql_real_escape_string 都是为了使数据安全的插入到数据库中而进行的过滤,那么这两个函数到底是有什么区别呢?首先,我们还是从PHP手册入手:手册上addslashes转义的字符是单引号(')、双引号(")、反斜线(\)与NUL(NULL 字符)。mysql_real_escape_string转义的字符并没有被提到,只是说了一句转载 2016-02-19 09:39:15 · 711 阅读 · 0 评论 -
提高PHP代码质量的36个技巧
1.不要使用相对路径常常会看到:require_once('../../lib/some_class.php');该方法有很多缺点:它首先查找指定的php包含路径, 然后查找当前目录.因此会检查过多路径.如果该脚本被另一目录的脚本包含, 它的基本目录变成了另一脚本所在的目录.另一问题, 当定时任务运行该脚本, 它的上级目录可能就不是工作目录了.因此最佳选择是使用绝对转载 2016-02-19 09:54:58 · 428 阅读 · 0 评论 -
PHP导出数据到CSV文件
后台往往需要导出各种数据到 Excel文档中。通常我们是导出 .csv文件格式,PHP导出函数参考代码如下:/** * 导出数据到CSV文件 * * @param array $data 二维数组(模拟数据表记录) * @param array $titleList 标题数组列表 * @param string $fileName CSV文件名 */function csv_expo原创 2016-02-19 13:55:52 · 3129 阅读 · 0 评论 -
PHP同时上传“多个”文件示例,并格式化$_FILES数组信息
方法1:在html表单,放置多个文件选择框, 使用数组名作为组件的名字,如下: 在服务器端我们可以测试一下提交的信息<?phpprint_r($_FILES);?>输出结果:Array( [upfile] => Array ( [name] => Array (转载 2016-02-19 14:04:21 · 1216 阅读 · 0 评论 -
如何删除PHP数组中的元素,并且索引重排
如果要在某个数组中删除一个元素,可以直接用的unset,但是数组的索引不会重排:<?php $arr = array('a','b','c','d');unset($arr[1]);print_r($arr);?> 结果是:Array ( [0] => a [2] => c [3] => d )那么怎么才能做到缺少的元素会被填补并且数组会被重新索引呢?答案是array_splic原创 2016-02-19 14:44:22 · 633 阅读 · 0 评论 -
【完全跨域】异步上传文件并获得返回值
AJAX可以进行数据的异步请求,但对于文件和跨域问题却束手无策。Jsonp可以进行跨域数据的异步请求,但同样不能使用于文件。表单可以进行跨域数据和文件的上传,但却会使页面跳转。那么如何同时实现“异步”+“跨域”+“文件”+“返回值”这几个特性呢?方法如下:原理:将表单通过一个iframe来submit,也就是将的target属性设置为一个iframe的id,转载 2016-02-19 14:49:09 · 439 阅读 · 0 评论 -
laravel schedule小记
定时任务 Scheduled Tasks 是 Laravel 提供的组件之一,稍微上点规模的项目应该都会用到,比如开发微信应用时通过定时任务去刷新access token,比如每天定时发推送提醒用户要记得签到。对于定时任务的基本用法,官网文档已经描述得很详细了,这里不再多说。本文主要是介绍定时任务在实际应用中的两个小技巧:1. 多个任务并行执行先简单介绍一下 Laravel 定时任务组件的基原创 2017-12-05 12:17:56 · 1250 阅读 · 0 评论