php
大猫先生
这个作者很懒,什么都没留下…
展开
-
session的创建,修改,销毁
session详细语法学习 session的创建,修改,销毁 1,无论是创建,修改,还是销毁session,都需要先session_start(); 2,一旦session_start之后,$_SESSION就可以自由的添加,删除,修改 即:当成普通数组一样操作(这一点和cookie不一样,cookie的操作,只能通过setcookie函数来进行)session_start();$_SES原创 2015-04-20 22:36:55 · 843 阅读 · 0 评论 -
500万PV/每天的网站
你想建设一个能承受500万PV/每天的网站吗? 500万PV是什么概念?服务器每秒要处理多少个请求才能应对?如果计算呢? PV是什么: PV是page view的简写。PV是指页面的访问次数,每打开或刷新一次页面,就算做一个pv。 计算模型: 每台服务器每秒处理请求的数量=((80%*总PV量)/(24小时*60分*60秒*40%)) / 服务器数量 。 其中关键的参数是80%、40%。表示转载 2015-04-28 13:25:04 · 521 阅读 · 0 评论 -
curl登录采集
<?php$cookie_file=tempnam('./temp','cookie'); //设置cookie存放目录$login_url='http://bbs.php100.com/login.php';//设置url地址// 将post提交的所有必须字段赋值给$post_fileds$post_fileds='ckyime=31536000&step=2&pwuser=mangmu1原创 2015-05-14 15:33:40 · 365 阅读 · 0 评论 -
fopen、file_get_content、fsocket、curl下载图片
直接用fopen下载远程图片$img=fopen("./mao2.png","w+");fwrite($img, "http://www.php100.com/uploadfile/2015/0507/thumb_420_240_20150507105744216.png");使用file_get_content直接下载远程图片$mao=file_get_contents("http://www原创 2015-05-14 13:42:53 · 1590 阅读 · 0 评论 -
php闭包和匿名函数
<?php // use 关键字可以实现闭包功能 function demo() { $a=10; $b=20; $one=function($str) use(&$a,&$b) { echo $str."<br/>"; echo $a."<br/>";原创 2015-05-14 17:27:09 · 332 阅读 · 0 评论 -
mac-php-nginx安装
升级到yosemite后,php也自动升级,运行phpcms时发现后台验证码显示不出来。很明显,缺少gd库,需要重新编译安装php,其过程十分辛苦,经过摸索发现使用brew安装比较方便。首先安装freetype,jpeg,libpng,gd,zlibbrew rm freetype jpeg libpng gd zlib brew install freetype jpeg libpng gd z原创 2015-05-16 17:31:32 · 662 阅读 · 0 评论 -
mac memcache
brew install memcachedbrew install php54-memcached然后: (php的扩展文件)brew install php54-memcache最后把memcache生成的.so文件写入php.ini里 extension=/path/memcached.so启动 memcached 命令memcached -d 默认参数启动memcached -d原创 2015-05-16 23:07:29 · 628 阅读 · 0 评论 -
正则常用
姓或名英文 ^[a-wA-Z\-\']{2,30}$电子邮件 ^[\w\.\-]{1,}\@([\da-zA-Z-]{1,}\.){1,}[\da-zA-Z-]+$电话号码 ^(\d){13}url ^http://([\w-]+\.)+[\w-]*(/[\w-./?%=]*)?原创 2015-06-17 21:40:58 · 239 阅读 · 0 评论 -
各种语言取整
1.丢弃小数部分,保留整数部分php: intval(7/2)js:parseInt(7/2)2.向上取整,有小数就整数部分加1php: ceil(7/2)js: Math.ceil(7/2)3,四舍五入.php: round(7/2)js: Math.round(7/2)4,向下取整php: floor(7/2)js: Math.floor(7/2)原创 2015-06-04 18:05:38 · 300 阅读 · 0 评论 -
__get和__set的用法
class StrictCoordinateClass{ private $arr=array('x'=>NULL,'y'=>NULL); function __get($property) { if(array_key_exists($property, $this->arr)) { return $this->ar原创 2015-07-10 14:24:53 · 322 阅读 · 0 评论 -
__call方法的使用
class maomaomao{ function maomao($count) { for($i=0;$i<$count;$i++) { echo "Hello World\n"; } return "叫了".$count."次"; }}class HelloWorldDelega原创 2015-07-10 14:35:12 · 370 阅读 · 0 评论 -
php异常类使用
// 异常类使用class NullHandleException extends Exception{ function __construct($message) { parent::__construct($message); }}function printObject($obj){ if($obj==NULL) {原创 2015-07-10 14:03:09 · 350 阅读 · 0 评论 -
php-防盗链
在http协议中,头信息里,有一个重要的选项:Referer Referer:代表网页的来源,即上一页的地址 如果是直接在浏览器上输入地址,回来进来,则没有Referer头 这也是:为什么服务器知道我们的图片是从哪儿引用的,也知道我们客户从哪个网站连接 点击过来的问题:如何配置apache服务器,用于图片防盗链? 原理:在web服务器层面,根据Http协议的referer头信息,来判断原创 2015-04-16 17:30:50 · 386 阅读 · 0 评论 -
php反射api
<?phpclass person{ public $name; public $gender; public function say() { echo $this->name,"\tis",$this->gender,"\r\n"; } public function set($name,$value) {原创 2015-08-03 11:06:53 · 273 阅读 · 0 评论 -
过滤转型
$sigs=array( 'prod_id'=>array('required'=>true,'type'=>'int'), 'desc'=>array('required'=>true,'type'=>'string','function'=>'addcslashes') );sanitize_vars(&$_GET,$sigs);function sanitize_var原创 2015-07-23 23:07:34 · 319 阅读 · 0 评论 -
创建curl
/* 简历curl请求的基本步骤 1)初始化。 2)设置选项,包括URL 3)执行并获取HTML文档内容 4)释放cURl句柄*///初始化$ch=curl_init();//2.设置选项,包括URLcurl_setopt($ch,CURLOPT_URL,"http://www.php.net"); curl_setopt($ch,CURLOPT_原创 2015-08-19 23:10:53 · 356 阅读 · 0 评论 -
curl例子
//poST方法请求##首先创建一个接受并显示POST数据的文件post_output.php:##print_r($_POST);##接下来,写一段PHP脚本执行cURL请求,:$url="http://localhost/post_output.php";$post_data=array( "foo"=>"bar", "query"=>"php", "action原创 2015-08-19 23:11:23 · 338 阅读 · 0 评论 -
php-socket发送邮箱
<?phperror_reporting(11);/*** */class smtp_mail { private $host; //保存要链接的SMTP服务器 private $port=25; //要绑定的端口,默认为25 private $user; //要登录SMTP的服务器的用户和密码 private $pass;原创 2015-08-20 14:14:48 · 342 阅读 · 0 评论 -
nginx提高负载
网站提高负载 1.gzip压缩 gzip配置的常用参数 gzip on|off; #是否开启gzip gzip_buffers 32 4K| 16 8K #缓冲(压缩在内存中缓冲几块? 每块多大?) gzip_comp_level [1-9] #推荐6 压缩级别(级别越高,压的越小,越浪费CPU计算资源) gzip_disable #正则匹配UA原创 2015-04-27 17:15:55 · 389 阅读 · 0 评论 -
php以编译方式安装,编译参数详解析!
PHP安装./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-mysql=/usr/local/mysql --with-mysqli=/usr/bin/mysql_config --with-iconv-dir=/usr/local --with-freetype-dir --w翻译 2015-04-27 17:18:50 · 1478 阅读 · 0 评论 -
nginx配置
#user nobody;worker_processes 1;#error_log logs/error.log;#error_log logs/error.log notice;#error_log logs/error.log info;#pid logs/nginx.pidevents { worker_connections 1024;}ht原创 2015-04-26 21:49:16 · 517 阅读 · 0 评论 -
php单例模式
<?php/*1,封闭外部new操作2.内部开一个公共接口负责New3.防止别人覆盖方法3.防止clone*/class Sigle{ protected static $ins=NULL; //封闭外部New操作 final protected function __constract() { } //内部开一个公共接口负责new原创 2015-04-18 23:29:31 · 136 阅读 · 0 评论 -
PHP实现观察者
<?php// PHP实现观察者// PHP中提供观察者Splobserver与被观察者Splsubject的接口class user implements SplSubject{ public $lognum; public $hobby; protected $observers=null; public function __construct($hob原创 2015-04-19 19:18:09 · 290 阅读 · 0 评论 -
php超小型模版类
总结: $smarty的工作流程: 1:把需要显示的全局变量,赋值,塞到对象内部的属性上,一个数组内 2:编译模版,把{$标签},解析成响应的phpe echo代码 3:引入编译后的Php文件 使用smarty的步骤: 1:smarty是一个类,要使用,需先引入并实例化 2:assign赋值 3:dispaly[编译到输出] sma原创 2015-04-24 11:06:38 · 320 阅读 · 0 评论 -
cookie来做浏览历史
<?php/*cookie来做浏览历史*/$uri=$_SERVER['REQUEST_URI'];/*这是错误写法,因为cookie只能存字符串setcookie('history',array($uri));因此$uro要放在数组里,但数组要转化字符串*/if(!isset($_COOKIE['history'])){ $his[]=$uri;}else{ $h原创 2015-04-20 17:30:01 · 555 阅读 · 0 评论 -
cookie的设置与销毁
<?php/*2个参数设置cookiecookie随着浏览器的关闭,就失效了*/setcookie('age',29);/* 下面我们让cookir多活一会 3个参数来设置cookie,第3个参数指的就是cookie的声明周期,以时间戳为单位 关掉浏览器后,可以对比出效果,age,关掉浏览器就失效 而school能存活1个小时*/setcookie('sch原创 2015-04-20 16:59:05 · 6407 阅读 · 0 评论 -
php-socket类
//http请求类的接口 interface Proto { // 连接urlfunction conn($url);// 发送get查询function get();// 发送post查询function post($body);// 关闭连接function close();} /* 第一步: 服务器连接 第二步:原创 2015-04-16 14:17:14 · 600 阅读 · 0 评论 -
获取有防盗链的图片
<?phprequire('./http.class.php');$http=new Http('http://192.168.1.23/0618/22.jpg');$**http->setHeader('Referer: http://localhost');** //主要冒认referer$res=$http->get();file_put_contents('./aa.jpg',su原创 2015-04-16 17:34:02 · 516 阅读 · 0 评论 -
购物车类-未完成
<?php/*分析购物车:1:你无论在本网站刷新了多少次页面,或者新增了多少个商品,都要求你查看购物车时,看到的都是一个一样的结果即:你打开A商品刷新,B商品刷新或者说:整站范围内,购物车--是全局有效的!2:既然是全局有效,暗示,购物车的实例只能有1个不能说在3个页面,买了3个商品,就形成了3个购物车实例,这显然不合理解决:单例模式技术选型:session+单例功能分析:判断商品是否存在原创 2015-04-21 16:42:46 · 393 阅读 · 0 评论 -
MySQL命令行导出数据库:
1,进入MySQL目录下的bin文件夹:cd MySQL中到bin文件夹的目录 如我输入的命令行:cd C:\Program Files\MySQL\MySQL Server 4.1\bin (或者直接将windows的环境变量path中添加该目录) www.2cto.com 2,导出数据库:mysqldump -u 用户名 -p 数据库名 > 导出的文件名 如我输入的命令行:mysql转载 2015-04-21 21:19:04 · 328 阅读 · 0 评论 -
HTTP与内容压缩:
观擦:我们打开163的一篇新闻: 看到如下响应头信息。注意.Content-Length: 同时。我们点右键保存其源码,得到的文本文件大小 思考:Content-Length在之前的学习中,我们知道,代表返回的主体的长度 但此处,为什么返回的主体长度和Content-Length不一致?原因在于:Content-Encoding:gzip这个响应头信息在作用原理:为了提高网页在网络上原创 2015-04-17 12:22:09 · 357 阅读 · 0 评论 -
HTTP 协议缓存控制
我们观察图片的下载,往往:第1次请求时 200 ok第2次请求时 304 Not Modified 未修改状态解释:在网络上,有一些缓存服务器,另。浏览器自身也有缓存功能当我们第一次某图片时,正常下载图片,返回200基于一个前提–图片不会经常改动,服务器在返回200的同事,还返回该图片的 “签名”–Etag ,(签名可以理解为图片的“指纹”) 当浏览器再次访问该图片时,去服务器校验“指纹”原创 2015-04-17 12:27:19 · 439 阅读 · 0 评论 -
php多态
<?phpabstract class Tiger { public abstract function mashu();}// 西伯利亚虎?class XTiger extends tiger{ public function mashu() { echo '碎下来了'; }}// 孟加拉虎class MTiger extends tig原创 2015-04-17 15:40:58 · 272 阅读 · 0 评论 -
反向ajax、comet、servier push
<?phpset_time_limit(0);ob_start();$str=str_repeat(' ',4000);echo $str;ob_flush(); //把产生的内容,立即送给浏览器而不要等脚本结束后再一起送flush();$i=1;while($i++) { echo $str,'<br/>'; echo $i,'<br/>'; ob_flus原创 2015-04-17 14:09:30 · 388 阅读 · 0 评论 -
购物车类
分析购物车: 1:你无论在本网站刷新了多少次页面,或者新增了多少个商品, 都要求你查看购物车时,看到的都是一个一样的结果即:你打开A商品刷新,B商品刷新或者说:整站范围内,购物车–是全局有效的!2:既然是全局有效,暗示,购物车的实例只能有1个 不能说在3个页面,买了3个商品,就形成了3个购物车实例,这显然不合理 解决:单例模式技术选型:session+单例功能分析:判断商品是否存在 添加商原创 2015-04-21 22:47:17 · 449 阅读 · 0 评论 -
PHP程序员的技术成长规划
按照了解的很多PHP/LNMP程序员的发展轨迹,结合个人经验体会,抽象出很多程序员对未来的迷漫,特别对技术学习的盲目和慌乱,简单梳理了这个每个阶段PHP程序员的技术要求,来帮助很多PHP程序做对照设定学习成长目标。本文按照目前主流技术做了一个基本的梳理,整个是假设PHP程序员不是基础非常扎实的情况进行的设定,并且所有设定都非常具体明确清晰,可能会让人觉得不适,请理解仅代表一家之言。(未来技术变化不在转载 2015-04-17 14:17:50 · 269 阅读 · 0 评论 -
面向接口编程
<?php// 共同的规范interface db{ function conn();}// 服务端开放(不知道将会被谁调用)class dbmysql implements db{ public function conn() { echo '连接上了'; }}class dbsqlite implements db{ pu原创 2015-04-17 16:04:04 · 228 阅读 · 0 评论 -
php 工厂方法
<?php/*工厂方法:*/// 共同的规范interface db{ function conn();}// 服务端开放(不知道将会被谁调用)class dbmysql implements db{ public function conn() { echo '连接上了mysql'; }}class dbsqlite impleme原创 2015-04-17 16:31:03 · 262 阅读 · 0 评论 -
php-utf-8编码下匹配中文
$str = "2222编程";if (preg_match("/[\x{4e00}-\x{9fa5}]+/u",$str)) {print("该字符串全部是中文");} else {print("该字符串不全部是中文");}原创 2015-09-14 17:01:36 · 250 阅读 · 0 评论