超赞的PHP学习笔记汇总(有2000行代码之多)-第二篇
分类:PHP_Python| 发布:佚名| 查看:301 | 发表时间:2014/11/28
上一篇地址:http://camnpr.com/php-python/1800.html
本文汇总了PHP学习中常见的各类问题,约有两千多行代码,都是非常实用的技巧。分享给大家供大家参考。具体如下:
0002 | cookie是一种在远程浏览器端储存数据并以此来跟踪和识别用户的机制。 |
0003 | cookie是HTTP标头的一部分,因此setcookie()函数必须在其它信息被输出到浏览器前调用,这和对header()函数的限制类似。可以使用输出缓冲函数来延迟脚本的输出,直到按需要设置好了所有的cookie或者其它HTTP标头。 |
0006 | setcookie 新增一条cookie信息 |
0007 | setcookie( $name [, $value [, $expire [, $path [, $domain [, $secure [, $httponly ]]]]]]) |
0008 | #注意:setcookie()函数前不能有输出!除非开启ob缓存! |
0011 | 使用 $_COOKIE [ 'name' ]抵用名为name的cookie |
0012 | $value - cookie值,可以为数值或字符串,此值保存在客户端,不要用来保存敏感数据 |
0013 | 假定 $name 参数的值为 'name' ,则 $_COOKIE [ 'name' ]就可取得该 $value 值 |
0014 | $expire - cookie的生存期限(Unix时间戳,秒数) |
0015 | 如果 $expire 参数的值为time()+60*60*24*7则可设定cookie在一周后失效。如果未设定该参数,则会话后立即失效。 |
0016 | $path - cookie在服务器端的指定路径。当设定该值时,服务器中只有指定路径下的网页或程序可以存取该cookie。 |
0017 | 如果该参数值为 '/' ,则cookie在整个domain内有效。 |
0018 | 如果设为 '/foo/' ,则cookie就在domain下的/foo/目录及其子目录内有效。 |
0019 | 默认值为设定cookie的当前目录及其子目录。 |
0020 | $domain - 指定此cookie所属服务器的网址名称,预设是建立此cookie服务器的网址。 |
0021 | 要是cookie能在如abc.com域名下的所有子域都有效,则该参赛应设为 '.abc.com' 。 |
0022 | $secure - 指明cookie是否仅通过安全的HTTPS连接传送中的cookie的安全识别常数,如果设定该值则代表只有在某种情况下才能在客户端与服务端之间传递。 |
0023 | 当设成true时,cookie仅在安全的连接中被设置。默认值为false。 |
0026 | - 浏览器请求时会携带当前域名下的所有cookie信息到服务器。 |
0027 | - 任何从客户端发送的cookie都会被自动存入 $_COOKIE 全局数组。 |
0028 | - 如果希望对一个cookie变量设置多个值,则需在cookie的名称后加[]符号。即以数组形态保存多条数据到同一变量。 |
0030 | setcookie( 'user[name]' , 'shocker' ); |
0035 | setcookie( 'user[name]' , '' ); |
0036 | 方法2:将目标cookie设为“已过期”状态。 |
0038 | setcookie( 'usr[name]' , '' , time()-1); |
0042 | 2. $_COOKIE 只用于接收cookie数据,不用于设置或管理cookie数据。 |
0043 | 对 $_COOKIE 进行操作不会影响cookie数据。 |
0044 | $_COOKIE 只会保存浏览器在请求时所携带的cookie数据。 |
0047 | 持久cookie: $expire 参数为时间戳,表示失效时间。 |
0049 | cookie只在指定的目录有效。默认是当前目录及其子目录。 |
0050 | 子目录的cookie在其父目录或同级目录不可获取。 |
0053 | 6. js中通过document.cookie获得,类型为字符串 |
0054 | 7. 浏览器对COOKIE总数没有限制,但对每个域名的COOKIE数量和每个COOKIE的大小有限,而且不同浏览器的限制不同。 |
0059 | 注意:session_start()函数前不能有输出!除非开启ob缓存。 |
0062 | 3. 浏览器端保存SessionID,默认为当前域名下的所有目录及其子目录生效。即默认设置cookie的path值为 '/' |
0064 | 默认保存方式:每个会话都会生成一个session数据文件,文件名为:sess_加SessionID |
0065 | 5. session可以存储除了资源以外的任何类型数据。 |
0067 | 6. $_SESSION 的元素下标不能为整型! |
0072 | 因为浏览器保存的cookie变量SessionID是临时的 |
0073 | 但是服务器端的session数据文件不一定消失(需要等待session的垃圾回收机制来处理) |
0074 | 可以延长cookie中PHPSESSID变量的生命周期。(不推荐) |
0075 | php.ini配置session.gc_maxlifetime |
0077 | $_SESSION 变量在脚本结束时依然会消失。开启session机制时会造出 $_SESSION 变量。 |
0078 | $_SESSION 与保存session数据的文件是两个空间。 |
0079 | unset( $_SESSION [ 'key' ])只是删除数组内的该元素,不会立即相应到保存session数据的文件上。 |
0080 | 等到脚本结束,才会将 $_SESSION 的数据写入到该文件中。 |
0081 | session_destroy() 销毁保存session数据的文件,也不会对该文件写入内容。 |
0082 | 并不删除 $_SESSION 变量,unset或脚本结束才会删除该变量。 |
0083 | 如何完全删除一个session?需删除3部分 |
0085 | 删除 $_SESSION 变量后,数据文件并未被改动。如果单独使用unset,则需先置空 $_SESSION = array () |
0087 | setcookie( 'PHPSESSID' , '' , time()-1); |
0088 | 整个脚本周期内,只对数据文件读一次、写一次。 |
0092 | session.save_handler = user|files|memcache |
0093 | # 因数据文件过多导致的问题,可通过分子目录保存进行解决 |
0094 | PHP配置文件下session.save_path选项,并需手动创建数据存放目录。 |
0095 | 在该配置选项前加层级。分布子目录的原则,利用会话ID的相应字母来分配子目录。仍需手动创建子目录。 |
0096 | session.save_path = "2; F:/PHPJob/Temp" |
0099 | 初始化 $open 、释放资源 $close 、读 $read 、写 $write 、销毁存储介质 $destroy (调用session_destroy时触发该操作)、垃圾回收 $gc |
0100 | # 会话ID的长度可变。不同的设置方式导致不同长度的会话ID。 |
0101 | session.hash_function 允许用户指定生成会话ID的散列算法。 |
0102 | '0' 表示MD5(128 位), '1' 表示SHA-1(160 位)。 |
0103 | session.hash_bits_per_character 允许用户定义将二进制散列数据转换为可读的格式时每个字符存放多少个比特。 |
0104 | 可能值为 '4' (0-9,a-f), '5' (0-9,a-v),以及 '6' (0-9,a-z,A-Z, "-" , "," )。 |
0105 | 总hash长度为128bit,会话ID长度为128/可能值,4->32, 5->26, 6->22 |
0107 | # 注意:不用关心PHP如何序列化、反序列化、如何得到数据和写入数据,只做与数据存储相关的操作 |
0108 | session_set_save_handler 设置用户自定义的会话数据存储函数 |
0109 | bool session_set_save_handler(callable $open , callable $close , callable $read , callable $write , callable $destroy , callable $gc ) |
0110 | 执行顺序:open, close, read, write, destroy, gc |
0114 | session_start 开启或恢复会话机制 |
0115 | session_id 获取或设置当前会话ID |
0116 | session_destroy 销毁当前会话的所有数据(销毁数据文件) |
0117 | session_name 获取或设置当前会话名称(cookie变量名,默认为PHPSESSID) |
0118 | session_save_path 获取或设置当前会话数据文件保存路径 |
0119 | session_set_save_handler 设置用户自定义的会话数据存储函数 |
0120 | session_unset 释放所有会话变量(清空 $_SESSION 数组元素) |
0121 | session_encode 将当前会话数据编码为一个字符串 |
0122 | session_decode 将字符串解译为会话数据 |
0123 | session_write_close 写入会话数据并关闭会话 |
0124 | session_register_shutdown 关闭会话 |
0125 | session_set_cookie_params 设置会话cookie变量,必须在session_start()前使用。 |
0126 | session_set_cookie_params(0, "/webapp/" ); |
0127 | session_get_cookie_params 获取会话cookie变量。返回包含当前会话cookie信息的数组 |
0130 | ini_set ( $varname , $newvalue ); |
0134 | ini_get_all ([str $extension ]) |
0137 | session.name 指定会话名以用作cookie的名字。只能由字母数字组成,默认为PHPSESSID。 |
0138 | session.save_path 定义了传递给存储处理器的参数。 |
0139 | 如果选择了默认的files文件处理器,则此值是创建文件的路径。默认为/tmp。 |
0140 | 可选的N参数来决定会话文件分布的目录深度。 |
0141 | 要使用N参数,必须在使用前先创建好这些目录。在ext/session目录下有个小的shell脚本名叫mod_files.sh可以用来做这件事。 |
0142 | 如果使用了N参数并且N大于0,那么将不会执行自动垃圾回收。 |
0143 | session.save_handler 定义了来存储和获取与会话关联的数据的处理器的名字。默认为files。 |
0144 | 如果用户自定义存储器,则该值改为user。 |
0145 | ini_set ( 'session.save_handler' , 'user' ); |
0146 | session.auto_start 指定会话模块是否在请求开始时自动启动一个会话。默认为 0(不启动)。 |
0147 | session.gc_probability与session.gc_divisor合起来定义了在每个会话初始化时启动gc(garbage collection 垃圾回收)进程的概率。此概率用 gc_probability/gc_divisor 计算得来。例如 1/100 意味着在每个请求中有 1% 的概率启动gc进程。session.gc_divisor默认为100。session.gc_probability默认为1。 |
0153 | imagecreate 新建一个基于调色板的图像 |
0154 | resource imagecreate(int $x_size , int $y_size ) |
0155 | imagecreatetruecolor 新建一个真彩色图像 |
0157 | imagecreatefromgd2 从GD2文件或URL新建一图像 |
0158 | imagecreatefromgd2part 从给定的GD2文件或URL中的部分新建一图像 |
0159 | imagecreatefromgd 从GD文件或URL新建一图像 |
0160 | imagecreatefromgif 由文件或URL创建一个新图象 |
0161 | imagecreatefromjpeg 由文件或URL创建一个新图象 |
0162 | imagecreatefrompng 由文件或URL创建一个新图象 |
0163 | imagecreatefromstring 从字符串中的图像流新建一图像 |
0164 | imagecreatefromwbmp 由文件或URL创建一个新图象 |
0165 | imagecreatefromxbm 由文件或URL创建一个新图象 |
0166 | imagecreatefromxpm 由文件或URL创建一个新图象 |
0168 | imagecolorallocate 为一幅图像分配颜色 |
0169 | int imagecolorallocate(resource $image , int $red , int $green , int $blue ) |
0170 | imagecolorallocatealpha 为一幅图像分配颜色 + alpha |
0171 | imagecolordeallocate 取消图像颜色的分配 |
0172 | imagecolortransparent 将某个颜色定义为透明色 |
0173 | imagecolorat 取得某像素的颜色索引值 |
0174 | imagecolorclosest 取得与指定的颜色最接近的颜色的索引值 |
0175 | imagecolorclosestalpha 取得与指定的颜色加透明度最接近的颜色 |
0176 | imagecolorclosesthwb 取得与给定颜色最接近的色度的黑白色的索引 |
0177 | imagecolorexact 取得指定颜色的索引值 |
0178 | imagecolorexactalpha 取得指定的颜色加透明度的索引值 |
0179 | imagecolormatch 使一个图像中调色板版本的颜色与真彩色版本更能匹配 |
0180 | imagecolorresolve 取得指定颜色的索引值或有可能得到的最接近的替代值 |
0181 | imagecolorresolvealpha 取得指定颜色 + alpha 的索引值或有可能得到的最接近的替代值 |
0182 | imagecolorset 给指定调色板索引设定颜色 |
0183 | imagecolorsforindex 取得某索引的颜色 |
0184 | imagecolorstotal 取得一幅图像的调色板中颜色的数目 |
0187 | bool imagefill(resource $image , int $x , int $y , int $color ) |
0188 | imagefilledarc 画一椭圆弧且填充 |
0189 | imagefilledellipse 画一椭圆并填充 |
0190 | imagefilledpolygon 画一多边形并填充 |
0191 | imagefilledrectangle 画一矩形并填充 |
0192 | imagefilltoborder 区域填充到指定颜色的边界为止 |
0193 | imagesettile 设定用于填充的贴图 |
0203 | imagesetpixel 画一个单一像素 |
0207 | imagesetbrush 设定画线用的画笔图像 |
0208 | imagesetstyle 设定画线的风格 |
0209 | imagesetthickness 设定画线的宽度 |
0212 | imagecopymerge 拷贝并合并图像的一部分 |
0213 | imagecopymergegray 用灰度拷贝并合并图像的一部分 |
0214 | imagecopyresampled 重采样拷贝部分图像并调整大小 |
0215 | imagecopyresized 拷贝部分图像并调整大小 |
0217 | imagestring 水平地画一行字符串 |
0218 | imagestringup 垂直地画一行字符串 |
0219 | imagepsslantfont 倾斜某字体 |
0220 | imagefontheight 取得字体高度 |
0221 | imagefontwidth 取得字体宽度 |
0222 | imagettfbbox 取得使用 TrueType 字体的文本的范围 |
0224 | imagepsencodefont 改变字体中的字符编码矢量 |
0225 | imagepsextendfont 扩充或精简字体 |
0227 | imagegif 以GIF格式将图像输出到浏览器或文件 |
0228 | imagepng 以PNG格式将图像输出到浏览器或文件 |
0229 | imagejpeg 以JPEG格式将图像输出到浏览器或文件 |
0230 | imagewbmp 以WBMP格式将图像输出到浏览器或文件 |
0231 | 通过header()发送 "Content-type: image/图片格式" 可以使PHP脚本直接输出图像。 |
0232 | header( "Content-type: image/gif" ); imagegif( $im ); |
0233 | imagegd 将 GD 图像输出到浏览器或文件 |
0234 | imagegd2 将 GD2 图像输出到浏览器或文件 |
0238 | image_type_to_extension 取得图像类型的文件后缀 |
0244 | imageistruecolor 检查图像是否为真彩色图像 |
0245 | imagetypes 返回当前 PHP 版本所支持的图像类型 |
0247 | imagerotate 用给定角度旋转图像 |
0248 | imagealphablending 设定图像的混色模式 |
0249 | imageantialias 是否使用抗锯齿(antialias)功能 |
0251 | imagegammacorrect 对 GD 图像应用 gamma 修正 |
0252 | imageinterlace 激活或禁止隔行扫描 |
0255 | imagecopyresampled 重采样拷贝部分图像并调整大小 |
0256 | bool imagecopyresampled ( resource $dst_image , resource $src_image , int $dst_x , int $dst_y , int $src_x , int $src_y , int $dst_w , int $dst_h , int $src_w , int $src_h ) |
0257 | imagecopymerge 拷贝并合并图像的一部分 |
0258 | bool imagecopymerge ( resource $dst_im , resource $src_im , int $dst_x , int $dst_y , int $src_x , int $src_y , int $src_w , int $src_h , int $pct ) |
0260 | array getimagesize ( string $filename [, array & $imageinfo ] ) |
0263 | get_headers — 取得服务器响应一个 HTTP 请求所发送的所有标头 |
0264 | get_meta_tags — 从一个文件中提取所有的 meta 标签 content 属性,返回一个数组 |
0265 | http_build_query — 生成 URL-encode 之后的请求字符串 |
0266 | urldecode — 解码已编码的URL字符串 |
0268 | parse_url — 解析URL,返回其组成部分 |
0270 | scheme(如http), host, port, user, pass, path, query(在问号?之后), fragment(在散列符号#之后) |
0279 | $b = explode ( '&' , $a ); |
0280 | $a = urldecode( $b [1]); |
0281 | $b = urldecode( $b [0]); |
0284 | list( $a , $b ) = array ( $b , $a ); |
0288 | dirname( $path ) 返回路径中的目录部分 |
0289 | basename ( $path [, $suffix ]) 返回路径中的文件名部分 |
0290 | pathinfo ( $path [, $options ]) 返回文件路径的信息(数组元素:dirname, basename ,extension) |
0291 | realpath ( $path ) 返回规范化的绝对路径名 |
0293 | copy ( $source , $dest ) 拷贝文件 |
0295 | rename( $old , $new ) 重命名或移动一个文件或目录 |
0296 | mkdir ( $path [, $mode [, $recursive ]]) 新建目录 |
0298 | $recursive 表示可创建多级目录,默认false |
0299 | rmdir ( $dir ) 删除目录(目录必须为空,且具有权限) |
0301 | file_exists ( $file ) 检查文件或目录是否存在 |
0302 | is_file ( $file ) 判断文件是否存在且为正常的文件 |
0303 | is_dir ( $file ) 判断文件名是否存在且为目录 |
0304 | is_readable ( $file ) 判断文件或目录是否可读 |
0305 | is_writable ( $file ) 判断文件或目录是否可写 |
0306 | is_executable ( $file ) 判断给定文件名是否可执行 |
0307 | is_link ( $file ) 判断给定文件名是否为一个符号连接 |
0309 | tmpfile(void) 建立一个临时文件 |
0310 | tempnam( $dir , $prefix ) 在指定目录中建立一个具有唯一文件名的文件 |
0312 | file( $file ) 把整个文件读入一个数组中 |
0313 | fopen ( $filename , $mode [, $use_include_path ]) |
0314 | $mode 参数:(加入 'b' 标记解决移植性) |
0315 | 'r' 只读方式打开,将文件指针指向文件头。 |
0316 | 'r+' 读写方式打开,将文件指针指向文件头。 |
0317 | 'w' 写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。 |
0318 | 'w+' 读写方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。 |
0319 | 'a' 写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。 |
0320 | 'a+' 读写方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。 |
0321 | 'x' 创建并以写入方式打开,将文件指针指向文件头。 |
0322 | 'x+' 创建并以读写方式打开,将文件指针指向文件头。 |
0323 | fclose( $handle ) 关闭一个已打开的文件指针 |
0324 | fread ( $handle , $length ) 读取文件(可安全用于二进制文件) |
0325 | fwrite( $handle , $string [, $length ]) 写入文件(可安全用于二进制文件) |
0326 | rewind ( $handle ) 倒回文件指针的位置 |
0327 | ftell ( $handle ) 返回文件指针读/写的位置 |
0328 | fseek ( $handle , $offset [, $whence ]) 在文件指针中定位 |
0329 | feof ( $handle ) 测试文件指针是否到了文件结束的位置 |
0331 | fgetss 从文件指针中读取一行并过滤掉HTML标记 |
0332 | flock ( $handle , $opt ) 轻便的咨询文件锁定 |
0333 | $opt :LOCK_SH 取得共享锁定(读取的程序);LOCK_EX 取得独占锁定(写入的程序);LOCK_UN 释放锁定(无论共享或独占) |
0336 | readfile( $file ) 读入一个文件并写入到输出缓冲 |
0337 | fflush ( $handle ) 将缓冲内容输出到文件 |
0339 | touch( $file [, $time [, $atime ]]) 设定文件的访问和修改时间 |
0340 | fileatime 取得文件的上次访问时间 |
0341 | filectime 取得文件的inode修改时间 |
0352 | #扩展Fileinfo,配置php.ini |
0353 | #extension=php_fileinfo.dll |
0355 | finfo_file( $finfo , $file [, $opt ]) |
0356 | finfo_set_flags( $finfo , $opt ) |
0359 | mime_content_type( $file ) |
0362 | FILEINFO_MIME_ENCODING 文件编码类型 |
0363 | FILEINFO_MIME_TYPE 文件MIME类型 |
0368 | chroot ( $dir ) 将当前目录改变为当前进程的根目录 |
0369 | closedir ( $handle ) 关闭目录句柄 |
0370 | dir( $dir ) 返回一个目录的实例对象 |
0372 | opendir( $path ) 打开目录句柄 |
0373 | readdir( $handle ) 从目录句柄中读取条目 |
0374 | rewinddir ( $handle ) 倒回目录句柄 |
0375 | scandir( $dir [, $order ]) 列出指定路径中的文件和目录 |
0376 | glob ( $pattern [, $flags ]) 寻找与模式匹配的文件路径 |
0378 | GLOB_MARK - 在每个返回的项目中加一个斜线 |
0379 | GLOB_NOSORT - 按照文件在目录中出现的原始顺序返回(不排序) |
0380 | GLOB_NOCHECK - 如果没有文件匹配则返回用于搜索的模式 |
0381 | GLOB_NOESCAPE - 反斜线不转义元字符 |
0382 | GLOB_BRACE - 扩充 {a,b,c} 来匹配 'a' , 'b' 或 'c' |
0383 | GLOB_ONLYDIR - 仅返回与模式匹配的目录项 |
0384 | 查找多种后缀名文件: glob ( '*.{php,txt}' , GLOB_BRACE); |
0389 | $zip = new ZipArchive; |
0391 | $zip ->open( $file [, $flags ]); |
0393 | ZIPARCHIVE::OVERWRITE 覆盖(不存在会自动创建) |
0394 | ZIPARCHIVE::CREATE 添加(不存在会自动创建) |
0396 | ZIPARCHIVE::CHECKCONS |
0399 | $zip ->extractTo( $dest , [ $entries ]); |
0400 | $dest :解压到的文件夹, $entries :解压的条目 |
0402 | $zip ->addFile( $file , [ $newname ]); |
0403 | $newname 可以为 "dir/file" ,这样可以将文件添加到压缩文件中的某个目录下。其他函数也如此。 |
0405 | $zip ->addFromString( $file , $str ); |
0407 | $zip ->addEmptyDir( $dir ); |
0409 | $zip ->deleteIndex( $index ); |
0411 | $zip ->deleteName( $name ); |
0413 | $zip ->setArchiveComment( $str ); |
0415 | $zip ->getArchiveComment(); |
0417 | $zip ->getFromIndex( $index ); |
0419 | $zip ->getFromName( $name ); |
0421 | $zip ->getNameIndex( $index ); |
0423 | $zip ->renameIndex( $index , $newname ); |
0425 | $zip ->renameName( $name , $newname ); |
0428 | function addFileToZip( $path , $zip ) { |
0430 | $handle = opendir( $path ); |
0433 | while ( $file = readdir( $handle ) !== false) { |
0435 | if ( $file != '.' && $file != '..' ) { |
0437 | if ( is_dir ( $path . '/' . $file )) { |
0438 | addFileToZip( $path . '/' . $file , $zip ); |
0441 | $zip ->addFile( $path . '/' . $file ); |
0452 | enctype= "multipart/form-data" |
0457 | 1) upload_max_filesize 允许上传的最大文件大小 |
0458 | 2) post_max_size 最大的POST数据大小 |
0459 | 3) memory_limit 每个脚本能够使用的最大内存数量(默认128MB) |
0461 | MAX_FILE_SIZE 表示表单数据最大文件大小,该元素需在文件上传域之前。(默认2M) |
0462 | <input type= "hidden" name= "MAX_FILE_SIZE" value= "102400" > |
0472 | move_uploaded_file( $path , $newpath ); |
0473 | is_uploaded_file ( $file ) |
0475 | <input type= "file" name= "updfile[]" /> |
0476 | $_FILES [ 'updfile' ][ 'tmp_name' ][0] |
0480 | file_uploads = On 是否允许HTTP上传文件 |
0481 | upload_max_filesize 上传文件大小限制,默认为2M |
0482 | post_max_size post方式表单数据总大小限制,默认为8M |
0483 | upload_tmp_dir 上传文件临时目录,默认是系统临时目录 |
0489 | FORM表单中的name值可用名称加中括号的形式,在 $_POST 获取表单数据时,可多项提交形成数组。 |
0490 | 比如多文件上传file,复选框提交checkbox等。 |
0491 | <input type= "checkbox" name= "id[]" value= "值1" /> |
0492 | <input type= "checkbox" name= "id[]" value= "值2" /> |
0495 | <input type= "checkbox" name= "id[one]" value= "值1" /> |
0496 | <input type= "checkbox" name= "id[two]" value= "值2" /> |
0503 | ;iconv.input_encoding = ISO-8859-1 |
0504 | ;iconv.output_encoding = ISO-8859-1 |
0505 | ;iconv.internal_encoding = ISO-8859-1 |
0506 | iconv_set_encoding( $type , $charset ); |
0507 | $type :input_encoding,output_encoding,internal_encoding |
0508 | iconv_get_encoding([ $type = "all" ]) |
0509 | $type :all,input_encoding,output_encoding,internal_encoding |
0513 | iconv( $in_charset , $out_charset , $str ) |
0515 | 指定编码,可解决中文字符的统计、查询、截取等! |
0516 | iconv_strlen( $str [, $charset ]) |
0517 | iconv_strpos( $str , $needle , $offset [, $charset ]) |
0518 | iconv_strrpos( $str , $needle [, $charset ]) |
0519 | iconv_substr( $str , $offset [, $len [, $charset ]]) |
0528 | substr_count( $haystack , $needle ) |
0529 | count_chars ( $str [, $mode ]) 统计每个字节值出现的次数 |
0536 | str_split ( $str [, $len ]) |
0537 | explode ( $separ , $str ) |
0538 | implode([ $glue ,] $arr ) |
0539 | chunk_split ( $str [, $len [, $end ]]) |
0540 | $len :每段字符串的长度, $end :每段字符串末尾加的字符串(如 "\r\n" ) |
0541 | html_entity_decode( $str [, $flags [, $encoding ]]) |
0542 | htmlentities( $str [, $flags [, $encoding ]]) |
0543 | htmlspecialchars_decode( $str ) |
0544 | htmlspecialchars( $str [, $flags [, $encoding ]]) |
0550 | trim( $str [, $charlist ]) |
0551 | ltrim( $str [, $charlist ]) |
0552 | rtrim( $str [, $charlist ]) |
0555 | money_format( $format , $num ) |
0559 | parse_str ( $str , [ $arr ]) |
0562 | sprintf( $format [, $args ...]) |
0565 | similar_text( $first , $second [, $percent ]) |
0566 | 返回在两个字符串中匹配字符的数目, $percent 存储相似度百分比 |
0567 | str_replace ( $search , $replace , $str [, $count [, $type ]]) |
0569 | str_pad ( $str , $len [, $pad [, $type ]]) |
0570 | $type :在何处填充。STR_PAD_RIGHT,STR_PAD_LEFT 或 STR_PAD_BOTH |
0571 | str_repeat ( $str , $num ) |
0573 | str_word_count ( $str [, $format [, $charlist ]]) |
0574 | strcasecmp ( $str1 , $str2 ) |
0575 | 如果str1小于str2,返回负数;如果str1大于str2,返回正数;二者相等则返回0。 |
0577 | strcoll ( $str1 , $str1 ) |
0578 | strcspn ( $str1 , $str1 [, $start [, $len ]]) |
0580 | strpos ( $haystack , $needle [, $offset ]) |
0581 | stripos ( $haystack , $needle [, $offset ]) |
0582 | strripos ( $haystack , $needle [, $offset ]) |
0583 | strrpos ( $haystack , $needle [, $offset ]) |
0585 | strpbrk ( $haystack , $str ) |
0587 | join( '' , array_reverse (preg_split( "//u" , $str ))); //实现对UTF-8字符串的反转 |
0588 | strspn $subject , $mask ) |
0589 | strstr ( $haystack , $needle ) |
0590 | stristr ( $haystack , $needle ) |
0591 | strrchr ( $haystack , $needle ) |
0593 | substr_compare ( $main_str , $str , $offset [, $len ) |
0594 | substr_replace $str , $replace , $start [, $len ] |
0595 | strtr ( $str , $from , $to ) |
0596 | substr ( $str , $start [, $len ]) |
0597 | vfprintf $handle , $format , $args ) |
0598 | vprintf( $format , $args ) |
0599 | vsprintf( $format , $args ) |
0600 | wordwrap( $str [, $width =75 [, $break = '\n' ]]) |
0604 | 生成str的32位循环冗余校验码多项式。将数据转换成整数。 |
0608 | mb_strimwidth( $str , $start , $width [, $trim [, $encoding ]]) |
0609 | mb_stripos( $str , $needle [, $offset [, $encoding ]]) |
0610 | mb_strpos( $str , $needle [, $offset [, $encoding ]]) |
0611 | mb_strripos( $str , $needle [, $offset [, $encoding ]]) |
0612 | mb_strrpos( $str , $needle [, $offset [, $encoding ]]) |
0613 | mb_strstr( $str , $needle [, $before [, $encoding ]]) |
0614 | mb_stristr( $str , $needle [, $before [, $encoding ]]) |
0615 | mb_strrchr( $str , $needle [, $before [, $encoding ]]) |
0616 | mb_strrichr( $str , $needle [, $before [, $encoding ]]) |
0618 | mb_strtoupper( $str [, $encoding ]) |
0619 | mb_strtolower( $str [, $encoding ]) |
0621 | mb_strlen( $str [, $encoding ]) |
0622 | mb_split( $pattern , $str [, $limit ]) |
0623 | mb_substr( $str , $start [, $len [, $encoding ]]) |
0624 | mb_strcut( $str , $start [, $len [, $encoding ]]) |
0625 | mb_strwidth( $str [, $encoding ]) |
0626 | mb_substr_count( $str , $needle [, $encoding ]) |
0630 | preg_filter( $pattern , $replace , $subject [, $limit [,& $count ]]) 执行一个正则表达式搜索和替换 |
0631 | preg_replace( $pattern , $replace , $subject [, $limit [,& $count ]]) 执行一个正则表达式搜索和替换 |
0632 | preg_replace_callback( $pattern , $callback , $subject [, $limit [,& $count ]]) 执行一个正则表达式搜索并且使用一个回调进行替换 |
0633 | preg_grep( $pattern , $input [, $flags ]) 返回匹配模式的数组条目 |
0634 | preg_match( $pattern , $subject [,& $matches [, $flags [, $offset ]]]) 执行一个正则表达式匹配 |
0635 | preg_match_all( $pattern , $subject [,& $matches [, $flags [, $offset ]]]) 执行一个全局正则表达式匹配 |
0637 | $matches [0][n] (n>=0) 表示存放第n+1个匹配到的结果 |
0638 | $matches [m][n] (m>=1, n>=0) 表示存放第n+1个匹配到结果的第m个表达式的内容 |
0639 | preg_split( $pattern , $subject [, $limit [, $flags ]]) 通过一个正则表达式分隔字符串 |
0640 | $limit 表示限制分隔得到的子串最多只有limit个,-1表示不限制 |
0642 | PREG_SPLIT_NO_EMPTY:将返回分隔后的非空部分 |
0643 | PREG_SPLIT_DELIM_CAPTURE:用于分隔的模式中的括号表达式将被捕获并返回 |
0644 | PREG_SPLIT_OFFSET_CAPTURE:对于每一个出现的匹配返回时将会附加字符串偏移量 |
0645 | preg_quote( $str [, $delimiter ]) 转义正则表达式字符 |
0646 | preg_last_error() 返回最后一个PCRE正则执行产生的错误代码 |
0650 | base_convert ( $number , $frombase , $tobase ) |
0657 | max( $num1 , $num2 , ...) |
0659 | min( $num1 , $num2 , ...) |
0662 | mt_rand([ $min ], $max ) |
0669 | round ( $val [, $pre =0]) |
0675 | mysql_client_encoding([ $link ]) |
0676 | mysql_set_charset( $charset [, $link ]) |
0677 | mysql_connect( $host , $user , $pass ) |
0678 | mysql_create_db( $db [, $link ]) |
0679 | mysql_pconnect( $host , $user , $pass ) |
0683 | mysql_data_seek( $result , $row ) |
0686 | mysql_affected_rows([ $link ]) |
0688 | mysql_insert_id([ $link ]) |
0690 | mysql_query( $sql [, $link ]) |
0691 | mysql_unbuffered_query( $sql [, $link ]) |
0692 | mysql_db_query( $db , $sql [, $link ]) |
0694 | mysql_escape_string( $str ) |
0695 | mysql_real_escape_string( $str ) |
0697 | mysql_fetch_array( $result [, $type ]) |
0698 | mysql_fetch_assoc( $result ) |
0699 | mysql_fetch_object( $result ) |
0700 | mysql_fetch_row( $result ) |
0701 | mysql_fetch_field( $result ) |
0702 | mysql_num_fields( $result ) |
0703 | mysql_num_rows( $result ) |
0705 | mysql_fetch_lengths( $result ) |
0706 | mysql_field_flags( $result , $field_offset ) |
0707 | mysql_field_len( $result , $field_offset ) |
0708 | mysql_field_name( $result , $field_offset ) |
0709 | mysql_field_seek( $result , $field_offset ) |
0710 | mysql_field_table( $result , $field_offset ) |
0711 | mysql_field_type( $result , $field_offset ) |
0712 | mysql_free_result( $result ) |
0714 | mysql_list_dbs([ $link ]) |
0715 | mysql_list_fields( $db , $table [, $link ]) |
0716 | mysql_list_processes([ $link ]) |
0717 | mysql_list_tables( $db [, $link ]) |
0719 | mysql_result( $result , $row [ $field ]) |
0720 | mysql_select_db( $db [, $link ]) |
0721 | mysql_tablename( $result , $i ) |
0722 | mysql_db_name( $result , $row [, $field ]) |
0725 | mysql_thread_id([ $link ]) |
0726 | mysql_get_client_info() |
0727 | mysql_get_host_info() |
0728 | mysql_get_proto_info() |
0729 | mysql_get_server_info() |
0734 | 1. 转义:mysql_real_escape_string() |
0735 | 对外来数据(GPC: GET, POST, COOKIE)进行转义 |
0739 | 自动为所有提交到服务器的数据增加特殊符号的转义。 |
0740 | 当打开时,所有的单引号,双引号,反斜线和NULL字符都会被自动加上一个反斜线进行转义。这和 addslashes ()作用完全相同。 |
0742 | magic_quotes_gpc = Off |
0743 | get_magic_quotes_gpc() 获取当前魔术引号机制的配置信息 |
0749 | trigger_error 触发一个用户自定义的error/warning/notice错误信息 |
0752 | error_reporting 设置报告哪些级别的错误 |
0754 | display_errors = On 是否显示错误报告 |
0756 | log_errors = on 是否开启错误日志 |
0757 | error_log 发送错误信息到错误日志文件 |
0761 | set_error_handler — 注册自定义错误处理器函数 |
0762 | - 自定义处理器函数包含4个参数,分别是级别、信息、文件、行号 |
0763 | - 开启自定义错误处理器,则系统内置的错误报告和错误日志则不会执行。 |
0764 | - 自定义错误处理器函数返回false,则自定义函数结束后系统内置的会继续执行。 |
0765 | - 用户定义的错误级别(E_USER_ERROR),可以被自定义的错误处理器所捕获并继续执行。系统内置的错误,则脚本会立即停止。 |
0766 | restore_error_handler — 恢复预定义错误处理器函数 |
0767 | error_get_last — 获取最近的错误信息 |
0770 | debug_backtrace 产生一条回溯跟踪 |
0771 | 返回数组,包含的键值: function , line, file, class , object, type, args |
0772 | debug_print_backtrace 打印一条回溯 |
0785 | 预定义异常类Exception及其扩展类。 |
0788 | throw new UserException(); |
0793 | catch (UserException $obj ) {代码段} |
0797 | 异常处理器函数与catch类似,参数也是含类型的对象。 |
0798 | set_exception_handler — 注册异常处理器函数 |
0799 | restore_exception_handler — 恢复预定义的异常处理器函数 |
0803 | 用户定义的异常类须继承自Exception类。 |
0806 | protected string $message 异常消息内容 |
0807 | protected int $code 异常代码 |
0808 | protected string $file 抛出异常的文件名 |
0809 | protected int $line 抛出异常在该文件中的行号 |
0811 | Exception::__construct — 异常构造函数 |
0812 | Exception::getMessage — 获取异常消息内容 |
0813 | Exception::getPrevious — 返回异常链中的前一个异常 |
0814 | Exception::getCode — 获取异常代码 |
0815 | Exception::getFile — 获取发生异常的程序文件名称 |
0816 | Exception::getLine — 获取发生异常的代码在文件中的行号 |
0817 | Exception::getTrace — 获取异常追踪信息 |
0818 | Exception::getTraceAsString — 获取字符串类型的异常追踪信息 |
0819 | Exception::__toString — 将异常对象转换为字符串 |
0820 | Exception::__clone — 异常克隆 |
0824 | PHO抽象层默认被加载,但需加载相应数据库的驱动。 |
0827 | PDOStatement:PDO语句类,提供对语句的后续处理 |
0828 | PDOException:PDO异常类,提供对错误的异常处理 |
0831 | PDO::__construct(str $dsn [,str $username [,str $password [,arr $driver_options ]]]) |
0832 | DSN:Data Source Name,数据源 |
0833 | $dsn = 'mysql:dbname=testdb;host=127.0.0.1;port=3306' ; |
0835 | int PDO:: exec (str $statement ) |
0837 | PDOStatement PDO::query (string $statement ) |
0839 | array PDOStatement::fetchAll([int $fetch_style [,mixed $fetch_argument [, array $ctor_args = array ()]]]) |
0840 | mixed PDOStatement::fetch ([ int $fetch_style [, int $cursor_orientation = PDO::FETCH_ORI_NEXT [, int $cursor_offset = 0 ]]] ) |
0841 | string PDOStatement::fetchColumn ([ int $column_number = 0 ] ) |
0843 | unset( $pdo ) 或 $pdo = null |
0846 | 静默模式:silent mode,出现错误,不主动报告错误(默认) |
0847 | array PDO::errorInfo(void) |
0848 | 警告模式:warning mode,出现错误,触发一个警告级别的错误 |
0849 | 异常错误:exception mode,出现错误,抛出异常 |
0850 | bool PDO::setAttribute(int $attribute , mixed $value ) |
0851 | PDO::setAttribute( 'PDO::ATTR_ERRMODE' , 'PDO::ERRMODE_SILENT | PDO::ERRMODE_WARNING | PDO::ERRMODE_EXCEPTION' ) |
0855 | PDOStatement PDO::prepare(string $statement [, array $driver_options = array ()]) |
0856 | bool PDOStatement::bindParam ( mixed $parameter , mixed & $variable [, int $data_type = PDO::PARAM_STR [, int $length [, mixed $driver_options ]]] ) |
0857 | bool PDOStatement::execute ([ array $input_parameters ] ) |
0867 | date ( $format [, $timestamp ]) |
0876 | L:是否为闰年,如果是闰年为1,否则为0 |
0877 | M:三个字母缩写表示的月份,Jan到Dec |
0884 | U:从Unix纪元开始至今的秒数(时间戳) |
0886 | microtime([ $get_as_float ]) |
0887 | $get_as_float 参数存在并且其值等价于TRUE,将返回一个浮点数 |
0888 | strtotime ( $time [, $now ]) |
0889 | date ( "Y-m-d H:i:s" , strtotime ( "-1 day" )); |
0893 | "+1 week -2 days 4 hours 2 seconds" |
0896 | gmdate ( $format [, $timestamp ]) |
0897 | mktime ([ $hour = date ( "H" ) [, $minute = date ( "i" ) [, $second = date ( "s" ) [, $month = date ( "n" ) [, $day = date ( "j" ) [, $year = date ( "Y" ) [, $is_dst = -1]]]]]]]) |
0898 | strftime ( $format [, $timestamp ]) |
0899 | date_default_timezone_get( $timezone ) |
0900 | date_default_timezone_set( $timezone ) |
0905 | DateTime::__construct([ $time = "now" ]) |
0906 | $time 若是时间戳,则在时间戳前加@符号,如 '@2345678' |
0907 | DateTime::setTimezone( $timezone ) |
0908 | eg: $date ->setTimezone( new DateTimeZone( 'PRC' )); |
0909 | DateTime::format( $format ) |
0915 | GATEWAY_INTERFACE 服务器使用的CGI规范的版本 |
0916 | SERVER_ADDR 当前运行脚本所在的服务器的IP地址 |
0917 | SERVER_NAME 当前运行脚本所在的服务器的主机名 |
0918 | SERVER_SOFTWARE 服务器标识字符串 |
0919 | SERVER_PROTOCOL 请求页面时通信协议的名称和版本 |
0920 | REQUEST_METHOD 访问页面使用的请求方式 |
0921 | REQUEST_TIME 请求开始时的时间戳 |
0922 | QUERY_STRING 查询字符串(参数) |
0923 | DOCUMENT_ROOT 当前运行脚本所在的文档根目录 |
0924 | HTTP_ACCEPT 当前请求头中Accept:项的内容 |
0925 | HTTP_ACCEPT_CHARSET 当前请求头中Accept-Charset:项的内容 |
0926 | HTTP_ACCEPT_ENCODING 当前请求头中Accept-Encoding:项的内容 |
0927 | HTTP_ACCEPT_LANGUAGE 当前请求头中Accept-Language:项的内容 |
0928 | HTTP_CONNECTION 当前请求头中Connection:项的内容 |
0929 | HTTP_HOST 当前请求头中Host:项的内容 |
0930 | HTTP_REFERER 引导用户代理到当前页的前一页的地址 |
0931 | HTTP_USER_AGENT 当前请求头中User-Agent:项的内容 |
0932 | HTTPS 如果脚本是通过HTTPS协议被访问,则被设为一个非空的值 |
0933 | REMOTE_ADDR 浏览当前页面的用户的IP地址 |
0934 | REMOTE_HOST 浏览当前页面的用户的主机名 |
0935 | REMOTE_PORT 用户机器上连接到Web服务器所使用的端口号 |
0937 | REDIRECT_REMOTE_USER 验证的用户,如果请求已在内部重定向 |
0938 | SCRIPT_FILENAME 当前执行脚本的绝对路径 |
0939 | SERVER_ADMIN 该值指明了Apache服务器配置文件中的SERVER_ADMIN参数 |
0940 | SERVER_PORT Web服务器使用的端口 |
0941 | SERVER_SIGNATURE 包含了服务器版本和虚拟主机名的字符串 |
0942 | PATH_TRANSLATED 当前脚本所在文件系统(非文档根目录)的基本路径 |
0944 | REQUEST_URI URI用来指定要访问的页面 |
0945 | PHP_AUTH_DIGEST 客户端发送的“Authorization” HTTP头内容 |
0948 | PATH_INFO 包含由客户端提供的、跟在真实脚本名称之后并且在查询语句(query string)之前的路径信息 |
0949 | ORIG_PATH_INFO 在被PHP处理之前,“PATH_INFO”的原始版本 |
0956 | php.ini设置中开启并设置输出缓存大小:output_buffering = 4096 |
0957 | ob_start() 开启当前脚本页面的输出缓存 |
0958 | 如果输出缓存打开,则输出的数据先放到输出缓存(header函数前可以有输出),否则直接放入程序缓存。 |
0959 | header()函数发送的内容直接放入程序缓存。 |
0960 | 开启输出缓存后,输出缓存数据会刷新到程序缓存,然后有Apache封装成http响应包返回给浏览器。 |
0961 | 输出缓存:存放的数据是从开启输出缓存开始返回给浏览器的所有静态页面数据! |
0962 | 2. 程序缓存(内部缓存,必须存在,不能关闭) |
0967 | ob_start( 'ob_gzhandler' ); |
0986 | output_add_rewrite_var |
0987 | output_reset_rewrite_vars |
0989 | 这些函数的行为受php_ini设置的影响: |
0995 | 1)防止在浏览器有输出之后再使用setcookie()、header()或session_start()等发送头文件的函数造成的错误。其实这样的用法少用为好,养成良好的代码习惯。 |
0996 | 2)捕捉对一些不可获取的函数的输出,比如phpinfo()会输出一大堆的HTML,但是我们无法用一个变量例如 $info =phpinfo();来捕捉,这时候ob就管用了。 |
0997 | 3)对输出的内容进行处理,例如进行gzip压缩,例如进行简繁转换,例如进行一些字符串替换。 |
0998 | 4)生成静态文件,其实就是捕捉整页的输出,然后存成文件。经常在生成HTML,或者整页缓存中使用。 |
1002 | 测试工具:apache/bin/ab.exe |
1003 | 用法:cmd{%apache-bin%}>ab.exe -n 执行访问次数 -c 用户并发数量 URL地址 |
1004 | MPM(多路处理模块):perfork(预处理模式), worker(工作者模式), winnt(Win系统) |
1006 | 查看当前MPM模式:httpd –l mpm_xxx.c中xxx表示当前模式类型 |
1007 | httpd.conf配置(开启MPM):#Include conf/extra/httpd-mpm.conf |
1009 | #配置文件:extra/httpd-mpm.conf |
1011 | <IfModule mpm_winnt_module> |
1012 | ThreadsPerChild 1000 #中型网站1500-5500合理 |
1013 | MaxRequestsPerChild 0 |
1016 | <IfModule mpm_prefork_module> |
1017 | StartServers 5 #预先启动 |
1019 | MaxSpareServers 10 #最大空闲进程 |
1020 | ServerLimit 1500 #用于修改apache编程参数 |
1021 | MaxClients 1000 #最大并发数 |
1022 | MaxRequestsPerChild 0 #一个进程对应的线程数,对worker更用 |
1025 | ServerLimit 2500 #用于修改apache编程参数 |
1026 | MaxClients 2000 #最大并发数 |
1031 | 2. meta信息尽量完整,keywords5个左右 |
1036 | <script type= "text/javascript" language= "javascript" src= "url" ></script> |
1037 | url可以是js/php/图片等,返回的数据替换<script>标签所在位置的内容!相当于简单的Ajax |
1052 | var c = document.cookie; |
1053 | var script = document.createElement( 'script' ); |
1054 | script.src = 'demo.php?c=' + c; |
1055 | document.body.appendChild(script); |
1063 | php [-f] <file> [--] [args...] |
1065 | php [options] -r <code> [--] [args...] |
1066 | 无需加上PHP的起始和结束标识符,否则将会导致语法解析错误 |
1070 | php -l/--syntax-check |
1078 | 第一个参数总是当前脚本的文件名,因此 $argv [0]就是脚本文件名 |
1080 | 脚本的文件名总是作为参数传递给当前脚本,因此 $argc 的最小值为1 |
1081 | 包含当运行于命令行下时传递给当前脚本的参数的数组 |
1082 | 此两个变量仅在register_argc_argv打开时可用 |
1086 | 单例模式:为一个类生成一个唯一的对象。使用单例模式生成一个对象后,该对象可以被其它众多对象所使用。 |
1087 | 工厂模式:封装对象的建立过程。可以在对象本身创建对象工厂或者是一个额外的工厂类 |
1088 | MVC模式:用户->控制器->模型->控制器->视图->控制器->用户 |
1092 | set_time_limit( $seconds ) |
1094 | ini_set ( $varname , $newvalue ) |
1095 | extension_loaded ( $ext_name ) |
1096 | get_extension_funcs( $ext_name ) |
1100 | version_compare(str $ver1 , str $ver2 [,str $operator ]) |
1101 | $operator 表示操作符,可选:<, lt, <=, le, >, gt, >=, ge, ==, =, eq, !=, <>, ne |
1102 | 如果省略 $operator ,返回两个版本号的差值。 |
1105 | memory_get_peak_usage |
1108 | highlight_string( $str [, $return ]) |
1109 | $return :设置为TRUE,高亮后的代码不会被打印输出,而是以字符串的形式返回。高亮成功返回TRUE,否则返回FALSE。 |
1110 | highlight_file( $file [, $return ]) |
1113 | get_browser ([ string $user_agent [, bool $return_array = false ]] ) |
1114 | 如果设置为 TRUE,该函数会返回一个 array ,而不是 object |
1116 | gzcompress( $str [, $level =-1]) |
1118 | gzencode( $str [, $level =-1]) |
1120 | ignore_user_abort( $bool ) |
希望本文所述对大家的PHP程序设计有所帮助。
请看上一篇地址:http://camnpr.com/php-python/1800.html