PHP
biorelive
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
PHP计算两个时间段是否有交集(边界重叠不算)
/** * PHP计算两个时间段是否有交集(边界重叠不算) * * @param string $beginTime1 开始时间1 * @param string $endTime1 结束时间1 * @param string $beginTime2 开始时间2 * @param string $endTime2 结束时间2 * @return bool * @author blo转载 2015-10-15 14:34:24 · 3344 阅读 · 1 评论 -
php与python局部变量区别
$name = 'php';function foo1{ echo $name; }会发出警告,说$name不存在language = 'python'def foo2(): print(language )可以正常输出原创 2015-08-02 22:40:23 · 280 阅读 · 0 评论 -
PHP数组的交集array_intersect(),array_intersect_assoc(),array_inter_key()函数详解
array_intersect()只比较值,array_intersect_key()只比较键,array_intersect_assoc()键值一起比较原创 2015-08-05 08:32:31 · 569 阅读 · 0 评论 -
PHP数组合并+与array_merge的区别分析
键名为数字时(需要注意的是数组键形式 '数字' 等价于 数字),array_merge()后面的值将不会覆盖原来的值,而是附加到后面。键名为字符串时,array_merge()此时会覆盖掉前面相同键名的值+合并数组则会把最先出现的值作为最终结果返回,而把后面的数组拥有相同键名的那些值“抛弃”掉(不是覆盖)原创 2015-08-05 08:25:05 · 372 阅读 · 0 评论 -
php的global
<?php$var1 = 1;$var2 = 2;function test(){ global $var1, $var2; $var2 = &$var1; echo $var2; $var2 = 'snsgou.com';}test(); // 输出 1echo $var2; // 输出 2echo $var1; // 输出 snsgou.com?>test()函原创 2015-08-04 22:38:54 · 374 阅读 · 0 评论 -
php判断是否为一维数组--count的妙用
<?phpif (count($array) == count($array, 1)){ echo '是一维数组';}else{ echo '不是一维数组';}PHP手册:int count ( mixed $var [, int $mode ] ) -- 计算数组中的单元数目或对象中的属性个数 如果可选的 mode 参数设为 COUNT_RECURSIVE(或 1),c原创 2015-08-04 22:30:24 · 1422 阅读 · 0 评论 -
php函数的引用返回
//This is the way how we use pointer to access variable inside the class.<?phpclass talker{ private $data = 'Hi'; public function & get(){ return $this->data; } public fu原创 2015-08-04 22:16:50 · 329 阅读 · 0 评论 -
static、全局、局部
1、所有的全局变量都是静态变量,而局部变量只有定义时加上类型修饰符static,才为局部静态变量2、函数体内如果在定义静态变量的同时进行了初始化,则以后程序不再进行初始化操作(出现在函数内部的基本类型的的静态变量初始化语句只有在第一次调用才执行)。而对自动变量赋初值是在函数调用时进行,每调用一次函数重新给一次初值,相当于执行一次赋值语句。3、静态局部变量的初始化表达式必须是一个常量或者常量原创 2015-07-30 22:01:37 · 388 阅读 · 0 评论 -
str_replace批量替换
$str = "人活着没有梦想,和咸鱼有什么分别";$str = str_replace(array('梦想', '咸鱼'), array('装B', '死咸鱼'), $str);echo $str;原创 2015-07-30 20:13:54 · 574 阅读 · 0 评论 -
array_splice()函数
array_splice(array,offset,length,array)如果函数没有删除任何元素 (length=0),则替代数组将从 start 参数的位置插入。<?php$a1=array(0=>"Dog",1=>"Cat",2=>"Horse",3=>"Bird");$a2=array(0=>"Tiger",1=>"Lion");array_splice($a1,0,2,原创 2015-08-10 20:07:24 · 686 阅读 · 0 评论 -
func_get_arg,func_get_args,func_num_args实现PHP伪重载
<?phpfunction testOne($a) {echo ('一个参数就这样 ');}function testTwo($a, $b) { echo ('两个参数的就这样 ');}function testThree($a, $b, $c) { echo ('呵呵,这是三个参数的 ');}function test() { $argNum = func_num_原创 2015-08-05 20:29:04 · 349 阅读 · 0 评论 -
URL处理几个关键的函数parse_url、parse_str
parse_url()该函数可以解析 URL,返回其组成部分。它的用法如下:array parse_url(string $url)此函数返回一个关联数组,包含现有 URL 的各种组成部分。如果缺少了其中的某一个,则不会为这个组成部分创建数组项。组成部分为:scheme - 如 http host - 如 localhostport - 如 80user pass转载 2015-08-05 21:36:36 · 813 阅读 · 0 评论 -
php的unset函数何时释放内存
<?php$s = str_repeat('1',255); //产生由255个1组成的字符串$m = memory_get_usage(); //获取当前占用内存unset($s);$mm = memory_get_usage(); //unset()后再查看当前占用内存echo $m-$mm;//负数,说明没释放内存?><?php$s = str_repeat('1',256);原创 2015-08-04 21:57:51 · 801 阅读 · 0 评论 -
PHP计算一年有多少周,每周开始日期和结束日期
<?phpheader("Content-type:text/html;charset=utf-8");date_default_timezone_set("Asia/Shanghai");$year = (int)$_GET['year'];$week = (int)$_GET['week'];$weeks = date("W", mktime(0, 0, 0, 12, 28, $ye转载 2015-10-15 14:37:05 · 2592 阅读 · 0 评论 -
PHP文件夹文件拷贝/复制函数 dir_copy($src = '', $dst = '')
/** * 文件夹文件拷贝 * * @param string $src 来源文件夹 * @param string $dst 目的地文件夹 * @return bool */function dir_copy($src = '', $dst = ''){ if (empty($src) || empty($dst)) { return false; } $dir =转载 2015-10-15 14:24:23 · 1127 阅读 · 0 评论 -
getcwd()和dirname(__FILE__)的区别
a.php include b.phpb.php getcwd -> a所在目录b.php dirname(__FILE__) -> b所在目录 如果文件被别人include了getcwd就会显示别人的路径,而dirname(__FILE__)始终显示自己的物理路径原创 2015-08-04 22:27:51 · 816 阅读 · 0 评论 -
PHP判断变量是否存在及函数isset() 、empty()与is_null的区别
一、举例说明A.如何判断一个变量是否定义?0102// 假设不存在$test 变量03 04if (isset($test))05{转载 2015-03-19 12:47:34 · 1074 阅读 · 0 评论 -
在PHP中定义常量时,const与define的区别
使用const使得代码简单易读,const本身就是一个语言结构,而define是一个函数。另外const在编译时要比define快很多。(1).const用于类成员变量的定义,一经定义,不可修改。define不可用于类成员变量的定义,可用于全局常量。(2).const可在类中使用,define不能。(3).const不能在条件语句中定义常量。(4).const采用一个普通的常量名称转载 2015-08-05 22:19:59 · 338 阅读 · 0 评论 -
PHP二维数组排序(sort_array)
/** * 对二维数组进行排序 * @param $array * @param $keyid 排序的键值 * @param $order 排序方式 'asc':升序 'desc':降序 * @param $type 键值类型 'number':数字 'string':字符串 */function sort_array(&$array, $keyid, $order = 'asc'转载 2015-08-05 22:12:51 · 495 阅读 · 0 评论 -
PHP Object 转 Array
/** * object 转 array */function object_to_array($obj){ $_arr = is_object($obj)? get_object_vars($obj) : $obj; foreach ($_arr as $key => $val) { $val = (is_array($val)) || is_object($val) ? obje转载 2015-08-05 22:14:38 · 450 阅读 · 0 评论 -
PHP get_class 返回对象的类名
<?phpclass jianbao{ public function __construct() { echo "My class name is " . get_class($this), ""; echo '__CLASS__:', __CLASS__, ""; }}$jianbao = new jianbao();echo "It is " . get_class转载 2015-08-05 21:44:20 · 588 阅读 · 0 评论 -
PHP获取当前页面的URL
/** * 获取当前页面地址 * * @author snsgou.com */function getPageUrl() { $pageURL = 'http'; if ($_SERVER["HTTPS"] == "on") { $pageURL .= "s"; } $pageURL .= "://"; if ($_SERVER["SERVER_PORT"] != "转载 2015-08-05 22:13:21 · 374 阅读 · 0 评论 -
如何正确理解PHP之include,include_once,require,require_once等包含作用域
1、被包含文件的变量的PHP include作用域遵从(不改变)包含文件所在处的作用域。2、所有在被包含文件中定义的函数和类在被包含后,在包含文件里都具有全局作用域。转载 2015-05-18 23:22:35 · 791 阅读 · 0 评论 -
PHP格式化显示文件大小函数
据文件的大小自动以KB、MB、GB为单位显示<?php/** * 格式化文件大小显示 * * @param int $size * @return string */function format_size($size){ $prec = 3; $size = round(abs($size)); $units = array( 0 => " B ", 1 =>转载 2015-05-18 23:21:14 · 607 阅读 · 0 评论 -
PHP变量作用域
花括号很多语言都以花括号作为作用域界限,PHP中只有函数的花括号才构成新的作用域。0102if (True) {03 $a = 'var a';04}05转载 2015-03-20 09:44:46 · 354 阅读 · 0 评论 -
判断gif是否为动图
1/*2 * 判断图片是否为动态3 */4function isAnimatedGif($filename) {5 $fp = fopen($filename, 'rb');转载 2015-03-20 13:34:51 · 975 阅读 · 0 评论 -
PHP header函数使用大全
PHP header函数大全header('Content-Type: text/html; charset=utf-8');header('Location: http://blog.snsgou.com/'); view source?0102转载 2015-03-20 13:13:28 · 298 阅读 · 0 评论 -
PHP获取当前域名$_SERVER['HTTP_HOST']和$_SERVER['SERVER_NAME']的区别
开发站群软件,用到了根据访问域名判断子站点的相关问题,PHP获取当前域名有两个变量 $_SERVER['HTTP_HOST'] 和 $_SERVER['SERVER_NAME'],两者的区别以及哪个更加可靠?相同点:当满足以下三个条件时,两者会输出相同信息。1. 服务器为80端口2. apache的conf中ServerName设置正确3. HTTP/1.1转载 2015-03-20 12:55:25 · 543 阅读 · 0 评论 -
PHP格式化金钱函数
实现目的:对数字进行格式化,以类似¥10,000,000的格式输出。实现方法:view source?01function doFormatMoney($money){02 $tmp_money = strrev($money);转载 2015-03-20 13:36:43 · 936 阅读 · 0 评论 -
php://input、Content-Type、$_POST及$HTTP_RAW_POST_DATA
1、Coentent-Type仅在取值为application/x-www-data-urlencoded和multipart/form-data两种情况下,PHP才会将http请求数据包中相应的数据填入全局变量$_POST 2、PHP不能识别的Content-Type类型的时候,会将http请求包中相应的数据填入变量$HTTP_RAW_POST_DATA 3、只要Content-Type原创 2015-03-19 10:09:50 · 1224 阅读 · 0 评论 -
PHP命名空间
1、定义命名空间时,命名空间开头不能有反转义符“\”,即 namespace \A\B\C; 是错误的,此命名空间将不起作用!namespace A\B\C; 才是对的。2、导入命名空间时,如果命名空间是一级的,则开头一定要加反转义符“\”,即 use A; 是错误的,use \A; 才是对的。3、导入命名空间时,如果命名空间是二级或更多级的,则开头有没有加反转义符“\”效果都是一转载 2015-03-19 11:40:53 · 422 阅读 · 0 评论 -
php中die()和exit()的区别
1、功能上,die() 就等同于 exit();2、PHP有多种运行方式,即可网站形式,也可脚本形式(不需要Web服务器)。a、当PHP为脚本形式运行时,建议用exit():当它要停止运行时,会用 exit()函数终止脚本,并允许输出点内容到运行环境(一般是存储到一个全局变量中),但输出的内容只能是 数字,表示“命令的结束状态”。exit(123)只是输出一种运行状态123,而不是原创 2015-03-19 10:58:29 · 858 阅读 · 0 评论 -
PHP常量详解:define和const的区别
常量是一个简单值的标识符(名字)。如同其名称所暗示的,在脚本执行期间该值不能改变(除了所谓的魔术常量,它们其实不是常量)。常量默认为大小写敏感。通常常量标识符总是大写的。可以用 define() 函数来定义常量。在 PHP 5.3.0 以后,可以使用 const 关键字在类定义的外部定义常量,先前版本const 关键字只能在类(class)中使用。一个常量一旦被定义,就不能再改变或者取消定转载 2015-03-19 11:33:38 · 356 阅读 · 0 评论 -
CGI、FastCGI、php-cgi、php-fpm
CGI:协议,规定了web server发给php解析器的内容格式,实现CGI协议的php解析器每次请求都读取php.ini,效率低FastCGI:协议,master进程读一次配置,调度worker进程,如果这时候修改了php.ini,新人新办法,老人老办法php-cgi:php解析器php-fpm:FastCGI进程管理器,可以平滑重启http://www.now原创 2015-03-20 10:57:49 · 344 阅读 · 0 评论 -
文件末尾的 PHP 代码段结束标记可以不要并且更好
文件末尾的 PHP 代码段结束标记可以不要,有些情况下当使用 include 或者 require 时省略掉会更好些,这样不期望的空白符就不会出现在文件末尾,之后仍然可以输出响应标头。在使用输出缓冲时也很便利,就不会看到由包含文件生成的不期望的空白符。http://php.net/manual/zh/language.basic-syntax.instruction-separation.ph原创 2015-03-18 09:50:06 · 736 阅读 · 0 评论 -
PHP读写大“二进制”文件,不必申请很大内存
<?php/** * 读写大二进制文件,不必申请很大内存 * 只有读取到内容才创建文件 * 保证目录可写 * * @param string $srcPath 源文件路径 * @param string $dstPath 目标文件路径 * @return bool */function fetch_big_file($srcPath, $dstPath){ set_time转载 2015-03-18 09:53:21 · 512 阅读 · 0 评论 -
判断是否为AJAX 请求原理
$_SERVER是一个包含诸如头信息(header),路径(path)和脚本位置(script locations)的数组。这是PHP手册的原话。有 一些头信息是系统本身就存在的,且不能更改,比如说HOST,USER_AGENT等等,注意我们常用到的 是$_SERVER['HTTP_HOST'],$_SERVER['HTTP_USER_AGENT'],这里面都有HTTP前缀,实现上在转载 2015-05-18 22:25:14 · 464 阅读 · 0 评论 -
SCRIPT_NAME、PHP_SELF、QUERY_STRING"、REQUEST_URI
$_SERVER["SCRIPT_NAME"] 就是xxx.php$_SERVER["PHP_SELF"] 就是问号?前面那些$_SERVER["QUERY_STRING"] 就是问号?后面那些$_SERVER["REQUEST_URI"] 就是域名后面所有的,如果有地址重写,代表的是重写之前的原创 2015-05-18 22:25:02 · 358 阅读 · 0 评论 -
PHP获取指定月份的第一天开始和最后一天结束的时间戳函数
/** * 获取指定月份的第一天开始和最后一天结束的时间戳 * * @param int $y 年份 $m 月份 * @return array(本月开始时间,本月结束时间) */function mFristAndLast($y = "", $m = ""){if ($y == "") $y = date("Y");if ($m == "") $m = date(转载 2015-05-18 21:36:14 · 739 阅读 · 0 评论 -
PHP常用函数
array_change_key_case — 返回字符串键名全为小写或大写的数组array_chunk — 将一个数组分割成多个array_combine — 创建一个数组,用一个数组的值作为其键名,另一个数组的值作为其值array_count_values — 统计数组中所有的值出现的次数array_diff_assoc — 带索引检查计算数组的差集array_diff_key — 使用键名比转载 2015-05-18 21:11:24 · 323 阅读 · 0 评论
分享