PHP程序设计
hankmiao
这个作者很懒,什么都没留下…
展开
-
mysql数据库授权
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY PASSWORD '*81F5E21E35407D884A6CD4A731AEBFB6AF209E1B';原创 2011-12-27 15:33:50 · 700 阅读 · 0 评论 -
session的实现机制以及与cookie的区别
百度的电话面试第一个问题就问到了这个,现在写下来,牢记于心吧。PHP 透明地支持 HTTP cookie。cookie 是一种在远程浏览器端储存数据并以此来跟踪和识别用户的机制。在解决问题之前,先来了解一下 PHP SESSION 的工作原理。在客户端(如浏览器)登录网站时,被访问的 PHP 页面可以使用 session_start() 打开 SESSION,这样就会产生客户端的唯一标识 SESSION ID(此 ID 可通过函数 session_id() 获取/设置)。SESSION ID 可以通过两种方原创 2011-04-07 20:15:00 · 898 阅读 · 0 评论 -
php二分法在IP地址查询中的应用
数据库大概存储几十万条IP记录,记录集如下:+----------+----------+------------+---------+---------+--------+--------+ | ip_begin | ip_end | country_id | prov_id | city_id | isp_id | netbar | +----------+----------+------------+---------+---------+--------+--------+ | 0 | 16777转载 2011-04-07 17:35:00 · 590 阅读 · 0 评论 -
HTTP协议状态码详解(HTTP Status Code)
<br />使用php或者javascript都会用到http的不同状态,一些常见的状态码为:<br />200 – 服务器成功返回网页 404 – 请求的网页不存在 503 – 服务不可用<br />所有状态解释:点击查看<br />1xx(临时响应)<br />表示临时响应并需要请求者继续执行操作的状态代码。<br />代码 说明<br />100 (继续) 请求者应当继续提出请求。 服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。 <br />101 (切换协议) 请求者已要求转载 2011-04-06 17:35:00 · 523 阅读 · 0 评论 -
无条件的delete查询在mysql4.1.2 版之前mysql_affected_rows为0
$res = mysql_query("delete from tblName");echo $rows = mysql_affected_rows();变量$rows在mysql4.1.2 之前,将为0;<br />可以简单做如下处理:function hack($sql){ if (preg_match('/^/s*DELETE/s+FROM/s+(/S+)/s*$/i', $query)) { $query = preg_replace('/^/s*DELE原创 2011-04-05 20:54:00 · 1232 阅读 · 0 评论 -
MySQL中varchar最大长度是多少?
<br />这不是一个固定的数字。本文简要说明一下限制规则。<br /> <br />1、限制规则<br />字段的限制在字段定义的时候有以下规则:<br /> <br />a) 存储限制<br />varchar 字段是将实际内容单独存储在聚簇索引之外,内容开头用1到2个字节表示实际长度(长度超过255时需要2个字节),因此最大长度不能超过65535。<br /> <br />b) 编码长度限制<br />字符类型若为gbk,每个字符最多转载 2011-03-30 18:42:00 · 11688 阅读 · 1 评论 -
PHP中$_SERVER的详细参数与说明
<br /><br />php编程中经常需要用到一些服务器的一些资料,特把$_SERVER的详细参数整理下,方便以后用到,以后搜索方便<br />$_SERVER['PHP_SELF'] #当前正在执行脚本的文件名,与 document root相关。<br />$_SERVER['argv'] #传递给该脚本的参数。<br />$_SERVER['argc'] #包含传递给程序的命令行参数的个数(如果运行在命令行模式)。<br />$_SERVER['GATEWAY_INTERFACE'] #服务器使用的转载 2011-03-27 20:52:00 · 739 阅读 · 0 评论 -
PHP实现手机号码归属地查询
在网上找到一个是由手机在线提供的一个不错的简单实用的接口。该网站提供的接口包括如下类型:通过 WebService 调用获取数据通过 HTTP Post/Get 获取 XML 格式的数据通过 HTTP Post/Get 获取 JSON 格式的数据通过 HTTP Post/Get 获取普通文本格式数据通过 form 或 iframe 标签插入 Web 页面通过 JavaScript 和 HTML 标签插入 Web 页面通过 WebService 调用获取数据Web Service 地址:http://api.转载 2011-02-22 16:39:00 · 6138 阅读 · 0 评论 -
Internal Server Error
<br />今天在php的zendframework框架下写程序,预览下index.php成下面的样子了,求高手指点<br /> <br /> Internal Server Error<br />The server encountered an internal error or misconfiguration and was unable to complete your request.<br />Please contact the server administrator, webmaster原创 2010-11-12 10:59:00 · 876 阅读 · 1 评论 -
php解压文件
<br />在后台执行这个php代码就ok(前提是要有权限)<br /> <br />$dirname = '/usr/home/demo/htdocs/'; $extractdir = '/usr/home/demo/htdocs/'; $cmd = 'unzip -o '.$dirname.'www.zip -d '.$extractdir; $res = exec($cmd);原创 2010-11-12 16:25:00 · 578 阅读 · 0 评论 -
谷歌发布apache加速模块 提速50%
<br />大多人浏览网页如果超过3秒打不开就会离开,Google为此推出了一款Apache加速模块:mod_pagespeed,该模块可以有效将网页加载速度提高50%。网页提速的问题是一个复杂多样的问题,有很多解决方法,往往关系到网站系统程序,服务器硬件,网络传输速度等方面,而Google这款加速模块简单的解决了许多复情况的问题:<br /> ◆如果你的网站采用Apache构建服务器,不需要对网站CMS系统进行处理即可应用;<br /> ◆加速模块可以自行对网络传输的HTML字节优化及对图象,CSS进转载 2010-11-05 10:17:00 · 645 阅读 · 0 评论 -
PHP的自动加载类的机制以及实现
<br />最近偶然看到了php的自动加载类,小小研究一番,在此写下我的心得。<br />我们在进行小规模的开发时,常常会用require或者include引用系统的公共文件(.php,.inc,.class.php),或者你尝试使用一个未知类时,会产生致命错误,这时你也可以用上述方法。但是在大型的开发中,这么做会产生大量的require或者include方法调用,这样做会降低效率,代码的可维护性也会大大降低,况且require_once的代价很大。<br />所以php的自动加载函数__autoload(原创 2011-04-09 10:54:00 · 1220 阅读 · 0 评论 -
php常用的四种排序算法
纯当练习,高手请绕过。以一维数组为例。1.插入排序思想:每次将一个待排序的数据元素插入到前面已经排好序的数列中,使数列依然有序,知道待排序数据元素全部插入完为止。示例:[初始关键字] [49] 38 65 97 76 13 27 49J=2(38) [38 49] 65 97 76 13 27 49J=3(65) [38 49 65] 97 76 13 27 49J=4(97) [38 49 65 97] 76 13 27 49J=5(76) [38 49 65 76 97] 13 27 49J=6(13)原创 2011-05-27 10:36:00 · 13279 阅读 · 1 评论 -
得到一个URL的domain域
<?php// 从 URL 中取得主机名preg_match("/^(http://)?([^/]+)/i"," http://www.php.net/index.html", $matches);$host = $matches[2];// 从主机名中取得后面两段preg_match("/[^./]+.[^./]+$/", $host, $matches);ech原创 2011-06-27 10:58:00 · 3978 阅读 · 0 评论 -
php截取中文字符串时乱码问题
<br />解决办法:<br /><?php function chinesesubstr($str,$start,$len) { //$str指字符串,$start指字符串的起始位置,$len指字符串长度 $strlen=$start+$len; //用$strlen存储字符串的总长度,即从字符串的起始位置到字符串的总长度 for($i=0;$i<$strlen;$i++) { if(ord(substr($str,$i,1)原创 2011-05-03 21:11:00 · 2675 阅读 · 1 评论 -
PHP输出数组中重名的元素的几种方法
1.可以直接用php的内置函数array_intersect()array array_intersect ( array $array1 , array $array2 [, array $ ... ] )array_intersect() 返回一个数组,该数组包含了所有在 array1 中也同时出现在所有其它参数数组中的值。注意键名保留不变。 代码: "green", "red", "blue");$array2 = array("b" => "green", "yellow", "red");原创 2011-05-03 16:53:00 · 2903 阅读 · 0 评论 -
上个月的最后一天及某个月的最后一天
//显示上个月的最后一天function G_L_M_Lastday($dateStr=){$time = time();if($dateStr !=) $time = strtotime($dateStr); return date(Y-m-t, strtotime(last month, $time));}echo G_L_M_Las原创 2011-06-28 15:05:00 · 1743 阅读 · 0 评论 -
计算上一个月的今天
<?php$time = strtotime("2011-03-31");/** * 计算上一个月的今天,如果上个月没有今天,则返回上一个月的最后一天 * @param type $time * @return type */ function last_month_today($time){ $last_month_time = mktime(dat原创 2011-06-27 10:33:00 · 767 阅读 · 0 评论 -
Mysql错误信息提示
<br />MySQL 常见错误提示,以下是 Errno 的错误代表:<br /> <br />130 :文件格式不正确,可以尝试一下使用 repair.php 来修复<br /> <br />145 :文件无法打开,使用 repair.php 修复<br /> <br />1005:创建表失败。<br /> <br />1006:创建数据库失败。<br /> <br />1007:数据库已存在,创建数据库失败。<br /> <br />1008:数据库不存在,删除数据库失败。<br /> <br />1原创 2011-04-28 19:49:00 · 2713 阅读 · 0 评论 -
2个任意维度的数组元素交叉显示在一维数组的实现算法
<br />思路:如果2个数组是一维的,那么直接交叉显示到一个一维数组。但是如果2个数组中任意一个是二维或者多维的,那么须将这个数组按元素顺序转化成一维的数组,然后再进行交叉显示。另外转化成的一维数组的长度可能不一样,那么按长的数组进行循环,另外还得考虑空值的情况。具体的代码如下:<br /><?phpfunction toarr($arr){ //对数组进行递归,以字符串形式返回 foreach ($arr as $k=>$v){原创 2011-04-26 21:17:00 · 1528 阅读 · 0 评论 -
输入任意一个数,得到1到这个数之间的1的个数
好久没写博客了,忙着面试,现正学习各种算法,今天碰到一个题。就是题目所写的那样,输入任意一个数,得到1到这个数之间的1的个数。比如这个数是12,那么函数f(12)返回的是5(因为中间有5个1)。另外说明一下,由于个人水平有限,算法的效率有待提高,欢迎高手指点。function one_ques($num){ $count=0; $str=""; if($num!=""||$nu原创 2011-06-14 19:47:00 · 1977 阅读 · 1 评论 -
数组转换成字符串递归算法
一维的可以直接用implode函数二维或者多维的就没效果了,三维的可以用foreach循环出来。但是上式只适用于三维的,有没有更smart的呢?递归!$v){ if (!is_array($v)) { $str.=" ".$v; } else { $str.=toarr($v); } } return $str;}//$arr=array(1,2,array(5,6,8));$arr=array原创 2011-04-24 13:08:00 · 3832 阅读 · 0 评论 -
PHP正则表达式学习笔记(二)
<br />再说说常用的正则函数:<br />1.preg_grep -- 返回与模式匹配的数组单元<br /> <br />说明:array preg_grep ( string pattern, array input [, int flags] )<br />preg_grep() 返回一个数组,其中包括了 input 数组中与给定的 pattern 模式相匹配的单元。<br />flags 可以是以下标记:<br />PREG_GREP_INVERT<br />如果传递入此标记,preg_grep(原创 2011-04-12 09:40:00 · 958 阅读 · 0 评论 -
PHP正则表达式学习笔记(一)
今天看了半天的正则表达式的视频,算是对正则有了一点的了解。在此写下我的一点实践与心得,杂乱无章,敬请谅解。简单的说,正则表达式是一种可以用于模式匹配和替换的强大工具。在几乎所有的基于UNIX/LINUX系统的软件工具中找到正则表达式的痕迹,例如:Perl或PHP脚本语言。此外,JavaScript这种客户端的脚本语言也提供了对正则表达式的支持,现在正则表达式已经成为了一个通用的概念和工具,被各类技术人员所广泛使用。正则表达式的开始符:^,结尾符$,这两个符号间的是匹配的元素。如检查一个电话号码是不是打往北京原创 2011-04-11 20:40:00 · 742 阅读 · 0 评论 -
又道PHP5中的魔术方法
<br />从PHP 5以后的版本,PHP中的类就可以使用魔术方法了。其规定以两个下划线(__)开头的方法都保留为魔术方法,所以建议大家函数名最好不用__开头,除非是为了重载已有的魔术方法。<br /> 1、__get、__set<br /> 这两个方法是为在类和他们的父类中没有声明的属性而设计的。<br /> ◆__get( $property ) 当调用一个未定义的属性时,此方法会被触发,传递的参数是被访问的属性名。<br /> ◆__set( $property, $value ) 给一个未定转载 2010-11-04 21:23:00 · 492 阅读 · 0 评论 -
phpwind新鲜事同步新浪微博功能出炉
<br />phpwind社区新鲜事同步新浪微博二期功能出炉。增加了多项实用功能:站点产生的所有类型的新鲜事都可以同步到新浪微博,反之亦然;同时站点后台提供了详细的统计功能,可以方便的查看运营情况。<br /> 社区新鲜事同步新浪微博,是利用phpwind平台中转实现的,可以将社区新鲜事与新浪微博实,行双向同步。只要开启了该功能,就能在社区个人中心实现帐号绑定,成功绑定后就能将双方内容打通。将社区的草根文化与新浪的媒体内容结合,为社区带来更大的流量和内容,挖掘更深度的社区营销价值。<br /> 官方体验转载 2010-11-04 21:10:00 · 1110 阅读 · 0 评论 -
smarty的嵌套循环
$query = “SELECT id,name,name_cn FROM di_flag ORDER BY id desc”;$result = mysql_query($query);while($row = mysql_fetch_array($result)){ $query2=”SELECT id, name, name_cn,flag FROM di_sort原创 2010-12-13 11:18:00 · 3331 阅读 · 1 评论 -
YAHOO--PHP面试题
知道差距了,努力吧!1. Which of the following will not add john to the users array? 1. $users[] = john;2. array_add($users,john);3. array_push($users,john);4. $users ||= john;2. Whats the d原创 2010-05-29 16:25:00 · 612 阅读 · 0 评论 -
用PHP实现一个双向队列
<?php class DoubleQueue { public $queue = array(); /**(尾部)入队 **/ public function push($value) { return array_push($this->queue,$value); } /**(尾部)出队原创 2010-05-29 16:18:00 · 2398 阅读 · 0 评论 -
关于PHP你可能不知道的10件事
1.使用ip2long() 和long2ip()函数来把IP地址转化成整型存储到数据库里。 这种方法把存储空间降到了接近四分之一(char(15)的15个字节对整形的4个字节),计算一个特定的地址是不是在一个区段内页更简单了,而且加快了搜索和排序的速度(虽然有时仅仅是快了一点)。 2.在验证Email地址的时候使用checkdnsrr() 函数验证域名是否存在。 这个内置转载 2010-05-20 21:28:00 · 638 阅读 · 0 评论 -
ZEND入口文件
之前一直用的TP框架,现在用比较大一点的框架ZF,下边是它的入口文件<?php error_reporting(E_ALL|E_STRICT); //在开启错误报告 date_default_timezone_set(Asia/Shanghai); //配置地区 set_include_path(. .PATH_SEPARATOR ../library.PATH原创 2010-05-16 21:14:00 · 813 阅读 · 0 评论 -
navicat使用教程
管理mysql,navicat才是王道!!!第一步:运行navicat8第二步:创建 mysql 连接说明:连接名:随便什么,便于理解就行。主机名/IP位址:mysql服务器的地址,通常为本机也就是localhost,mysql默认不支持远程连接!埠:也就是常说的端口,mysql默认为3306用户名&密码:不用我说了,用户名mysql默认root填好点击测试连接原创 2010-05-16 10:06:00 · 16023 阅读 · 2 评论 -
用PHP实现飞信api接口发飞信短信
不过这个不能和飞信客户端同时登录,二者只能登一个,只要代码在dw里打开,客户端就掉了呵呵~~~<?php/* * Created on 2010-4-18 * MiaoPengFei * To change the template for this generated file go to * Window - Preferences - PHPeclipse - PHP原创 2010-05-08 21:16:00 · 3010 阅读 · 1 评论 -
用PHP实现手机归属地查询api接口
用PHP实现手机归属地查询api接口: 主要使用curl实现,需要开启php对curl的支持.<?php header("Content-Type:text/html;charset=utf-8"); if (isset($_GET[number])) { $url = http://webservice.webxml.com.cn/WebServ翻译 2010-05-08 11:16:00 · 2167 阅读 · 2 评论 -
用php正则判断url地址并自动转换为超链接
<br />用php判断url地址并自动转换为超链接,在一段字符串中用正则表达式匹配出url,在将url转换为超链接,点击可访问地址:<br /><?phpfunction autolink($foo) { $foo = eregi_replace('(((f|ht){1}tp://)[-a-zA-Z0-9@:%_/+.~#?&//=]+)', '<a href="/1" mce_href="/1" target=_blank rel=nofollow>/1</a>', $foo); if(原创 2010-06-30 19:30:00 · 5028 阅读 · 2 评论 -
用php模拟http身份认证
<br />用php实现基本的身份认证,可以通过结合header()函数和$PHP_AUTH_USER、$PHP_AUTH_PW全局变量的方法来创建一个基本的认证机制。通常基于服务器的认证请求/响应过程如下: <br />1. 用户向一台Web服务器请求一个文件。如果文件在一个受到保护的区域以内,服务器就在响应数据的头部内加上401(非法用户)字符串作为回应。 <br />2.浏览器看见该响应之后弹出用户名/口令对话框。 <br />3.用户在对话框中输入用户名和口令,然后单击“OK”把这些信息送回到服务器转载 2010-06-30 19:26:00 · 744 阅读 · 0 评论 -
WEB监控体系之设备负载监控
第一次写和工作密切相关的文章,却无从下手,胡乱写起,纯当总结。 设备负载监控属于硬件级的基础监控,比设备基础监控粒度要粗一些,属于设备基础监控上一层的硬件监控,适合于数量较大、具有集群特性的硬件综合指标监控。当然,其监控数据来源仍为单机设备基础信息。 单机基础硬件指标大概包括CPU使用率、内存使用率、磁盘I/O、磁盘空间使用率、网卡出入包量、网卡出入流量、平均负载等。那么各种业务逻辑可转载 2010-05-04 20:35:00 · 645 阅读 · 0 评论 -
安装wordpress的Warning: Cannot modify header information 问题
前段时间在本地安装wp,老是提示Warning: Cannot modify header information – headers already sent by 。。。上网查了一下,还是没有解决,下面是我自己的解决方法:1.去掉 后面的空白行2.在header(“location:xxx”)后面加上exit();3.开启php.ini中的output_buffering4原创 2010-05-04 20:29:00 · 529 阅读 · 0 评论 -
使对象可以像数组一样进行foreach循环,要求属性必须是私有
(Iterator模式的PHP5实现,写一类实现Iterator接口) PHP5开始支持了接口, 并且内置了Iterator接口, 所以如果你定义了一个类,并实现了Iterator接口,那么你的这个类对象就是ZEND_ITER_OBJECT,否则就是ZEND_ITER_PLAIN_OBJECT.对于ZEND_ITER_PLAIN_OBJECT的类,foreach会通过HASH_OF获取该对象的转载 2010-05-29 16:09:00 · 2451 阅读 · 1 评论 -
PHP100视频解压密码以及目录
php100视频从75期开始有密码,81期没密码,而在第89期视频后,所有密码将统一为 php100.com 从而取消论坛金币购买解压密码方式。75的解压密码 : php100-18293-2938-2839-348-#76的解压密码 : php100-18634-6254-1001-283-#77的解压密码 : php100-18394-9384-2333-314-#78的解压密码 : php100-28323-5837-2734-392-#79的解压密码 : php100-83343-5234-8原创 2010-07-24 15:20:00 · 3124 阅读 · 0 评论