程序员学习资源站
字符串函数
strlen:获取字符串长度,字节长度
substr_count 某字符串出现的次数
substr:字符串截取,获取字符串(按照字节进行截取)
mb_strlen
mb_substr
strchr:与substr相似,从指定位置截取一直到最后
strrchr(获取文件后缀名):与strchr一样,只是从右边开始查找字符
strtolower:所有的字符都小写(针对英文字母)
strtoupper:所有的字符都大写
strrev:字符串反转(只能反转英文:英文存储只有一个字节),按照字节进行反转
strpos:从字符串中找对应字符出现的位置(数字下标),从最左边开始找
strrpos:与strpos一样,只是从字符串的右边开始找
trim:去掉函数两边的字符,默认是空格
str_split 函数把字符串分割到数组中。
chunk_split() 函数把字符串分割为一连串更小的部分
str_repeat("Shanghai",5);把字符串 "Shanghai " 重复 5 次
str_replace('\\', '/', dirname(DIR))); 替换
ucfirst 首字母大写
时间日期函数
time:得到当前时间的时间戳(整型:从格林威治时间1970年1月1日0时0分0秒开始)秒数
date:时间序列化函数,将指定的时间戳转换成规定时间日期的显示格式(随意的字符串:有专业的格式符规定),如果没有指定时间戳,系统默认使用当前时间的时间戳
strtotime:时间日期格式的字符串转换成对应的时间戳(只要是正确的英语时间表达方式,都可以进行转换)
microtime:微秒时间戳,根据不同的要求返回不同的结果 混合 microtime (布尔类型 ),可以返回一个浮点数的时间,也可以返回一个数组(时间戳和微秒数)
数学相关函数
abs:绝对值
floor:向下取整 floor(3.2) 结果等于3
ceil:向上取整
round:四舍五入
rand:取得一个指定范围内的随机整数
mt_rand:取得一个指定范围内的随机整数(效率更高)
min:PHP 会将非数值的 string 当成 0,但如果这个正是最小的数值则仍然会返回一个字符串。如果多个参数都求值为 0 且是最小值,min() 会返回按字母表顺序最小的字符串,如果其中没有字符串的话,则返回数值的 0;
max:PHP 会将非数值的字符串当成 0,但如果这个正是最大的数值则仍然会返回一个字符串。如果多个参数都求值为 0 且是最大值,max() 会返回其中数值的 0,如果参数中没有数值的 0,则返回按字母表顺序最大的字符串。对于多个数组,max从左到右比较;如果同时出现数组和非数组参数总把数组作为最大值返回;
数组相关函数
count() // 非数组返回1
key:获取当前数组当前指针所指向的元素的下标
current:获取的当前指针指向元素的数值
next:获取下一个元素的值,并且将指针下移
prev:获取上一个元素的值,并且将指针上移
end :将指针移到数组的最后一个元素,并返回最终指针位置的值
reset:将指针移到数组的第一个元素,返回最终指针位置的值
array_keys:获取一个数组的所有键名,返回一个索引数组
array_values:获取一个数组的所有值,返回一个索引数组
explode:爆炸,将一个字符串按照某个指定的规则(通常是特殊字符),将数组分成多个段,每一段都当做一个数组的元素,返回一个索引数组
split 类似 explode explode('.', 'abc.txt')等于split('\.','abc.txt')
implode:粘合,将一个数组内部的所有元素按照某个指定的规则(特殊字符),将所有的元素拼接成一个字符串
join() 把数组元素组合为一个字符串
array_merge:合并,指的是将两个数组中的元素进行累计。如果后面的数组与前面的数组有下标(键名:关联)相同的,那么后面的元素的值会覆盖前面的;如果是索引的相同下标,会自动的修改下标叠加到前面的数组里。
array_reverse — 返回反转后的数组
array_flip — 交换数组中的键和值
数据结构模拟函数
array_shift:从数组的前面弹出元素,得到元素的值
array_pop:从数组的后面弹出元素,获得元素的值
array_unshift:从数组的前面压入元素,得到当前数组元素的个数
array_push:从数组的后面压入元素,得到当前数组元素的个数
判断变量
is_bool:判断是否是布尔类型
is_float:判断浮点型
is_integer:判断整型
is_object:判断对象
is_array:判断数组
is_string:判断字符串
is_resource:判断资源
is_scalar:scalar是标量的,判断是基本数据类型:整型,浮点型,布尔型和字符串型
is_null 检测变量是否为NULL 是返回TRUE 否则返回false。1.被赋值为NULL;2.变量没被赋值;3.被unset()
is_numeric:判断数字或者纯数字组成的字符串
gettype:获得数据类型
settype:改变数据类型
isset
unset() 如果在函数中 unset() 一个全局变量,则只是局部变量被销毁,而在调用环境中的变量将保持调用 unset() 之前一样的值,如果在函数中 unset() 一个通过引用传递的变量,则只是局部变量被销毁,而在调用环境中的变量将保持调用 unset() 之前一样的值。
empty//array(),"",0,"0",NULL,FALSE 都返回true
文件操作函数
opendir(路径):打开一个路径资源(将路径内部的所有数据读入到内存)
readdir(路径资源):从文件夹资源中读取当前资源指针所指向的文件的名字,指针会向下移动一位
closedir(资源):释放对应的文件资源
scandir(路径):读取一个路径内部的所有文件名,返回一个数组,数组的每一个元素都是文件名。
file_exists:判断一个文件是否存在(文件是广义:路径和文件)
is_dir:判断一个指定路径是否存在(文件夹)
is_file:判断一个指定路径是否是文件(文件)
mkdir:创建一个路径,如果路径存在就会报错
rmdir:移除文件夹
file_get_contents:从一个指定的文件内读取数据内容。
file_put_contents:将指定的字符串写入到对应的文件
fopen:打开一个文件资源
fgetc:c代表character,一次读取一个字符
fgets:s代表string,代表可以读取多个字符,取决于指定的读取长度或者是否碰到换行(最多只能读取一行数据)
两个函数都是对当前资源指针进行操作,读取之后都会将指针下移
fread:获取指定长度的数据直到文件结束
fwrite:向文件资源指针所在的位置写入数据,写东西不会将当前位置已有的东西往后移,而是会覆盖
fseek:将指针指定到对应的位置
fclose:使用对应的文件资源
copy:复制
unlink:删除文件
rename:重命名文件
filemtime:m代表modify,文件最后被修改的时间
filesize:文件大小(字节)
fileperms:文件权限(Linux下的八进制)
排序
rsort() 函数用于对数组单元从高到低进行排序。
asort() 函数用于对数组单元从低到高进行排序并保持索引关系。
arsort() 函数用于对数组单元从高到低进行排序并保持索引关系。
ksort() 函数用于对数组单元按照键名从低到高进行排序。
krsort() 函数用于对数组单元按照键名从高到低进行排序。
报错
error_reporting(E_ALL)
ini_set('display_errors', 1)
常量
define() 定义常量
defined() 检测常量是否定义
序列化
serialize
unserialize
json_encode 对变量进行 JSON 编码
json_decode 对JSON 格式的字符串进行编码
编码
base64_encode 本函数将字符串以 MIME BASE64 编码。在 BASE64 编码后的字符串只包含英文字母大小写、阿拉伯数字、加号与反斜线,共 64 个基本字符,不包含其它特殊的字符,因而才取名 BASE64。
base64_decode 解码
# @Date : 2017-11-15 13:18:34 # @Author : 师兵范 (shibingfan@163.com) #常用MySQL数据库命令 +------------+----------------+ | COMD | DESCRIPTION | +------------+----------------+ |ALTER |修改 | |BACKUP |备份 | |\C |取消输入 | |CREATE |创建 | |DELETE |删除行 | |DESCRIBE |表结构 | |DROP |删除 | |EXIT(CTRL-C)|退出 | |GRANT |修改权限 | |HELP(\h,\?) |帮助 | |INSERT |插入 | |LOCK |锁住 | |QUIT(\q) |退出 | |RENAME |重命名 | |SHOW |项目说明 | |SOURCE |从文件名执行命令| |STATUS(\s) |显示当前状态 | |TRUNCATE |清空表 | |UNLOCK |解锁表 | |UPDATE |更新数据 | |USE |打开数据库 | +------------+----------------+ #显示已有数据库 mysql> SHOW databaseS; +--------------------+ | Database | +--------------------+ | information_schema | | drupal7 | | mysql | | northwind | | performance_schema | | shibingfan | | sys | | testdb | +--------------------+ 8 rows in set (0.06 sec) #创建数据库 mysql> CREATE DATABASE publications; Query OK, 1 row affected (0.03 sec) #使用数据库 mysql> USE publications; Database changed #数据库授权 mysql> GRANT ALL ON publications.* TO 'shibingfan'@'localhost' IDENTIFIED BY 'shibingfan'; Query OK, 0 rows affected, 1 warning (0.00 sec) #创建数据库表 mysql> CREATE TABLE classics( -> author VARCHAR(128), -> title VARCHAR(128), -> type VARCHAR(16), -> YEAR char(4))ENGINE MyISAM; Query OK, 0 rows affected (0.08 sec) #查询表结构 mysql> DESCRIBE classics; +--------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +--------+--------------+------+-----+---------+-------+ | author | varchar(128) | YES | | NULL | | | title | varchar(128) | YES | | NULL | | | type | varchar(16) | YES | | NULL | | | YEAR | char(4) | YES | | NULL | | +--------+--------------+------+-----+---------+-------+ 4 rows in set (0.02 sec) #数据类型 CHAR(n) VARCHAR(n) BINARY(n) VARBINARY(n) TEXT(n) TINYTEXT(n) MEDIUMTEXT(n) LONGTEXT(n) TINYBLOB(n) BLOB(n) TINYINT SMALLINT MEDIUMINT INT/INTEGER BIGINT FLOAT DOUBLE/REAL DATETIME DATE TIMESTAMP TIME YEAR INT UNSIGNED, NOT NULL, AUTO_INCREMENT, KEY #添加表列id mysql> ALTER TABLE classics ADD id INT UNSIGNED NOT NULL AUTO_INCREMENT KEY; Query OK, 0 rows affected (0.06 sec) Records: 0 Duplicates: 0 Warnings: 0 #删除表列 mysql> ALTER TABLE classics DROP id; Query OK, 0 rows affected (0.08 sec) Records: 0 Duplicates: 0 Warnings: 0 #向表中添加数据 mysql> INSERT INTO classics(author,title,type,year)VALUES('Shibingfan', 'LEARN MYSQL', 'EDUCATION', '1887'); Query OK, 1 row affected (0.00 sec) #重命名表 mysql> ALTER TABLE classics RENAME mytable ; Query OK, 0 rows affected (0.02 sec) #改变列数据类型 mysql> ALTER TABLE mytable MODIFY year SMALLINT; Query OK, 5 rows affected (0.08 sec) #添加新列 mysql> ALTER TABLE mytable ADD pages SMALLINT UNSIGNED; Query OK, 5 rows affected (0.08 sec) #重命名列 mysql> ALTER TABLE mytable CHANGE type category VARCHAR(16); Query OK, 0 rows affected (0.31 sec) #删除列 mysql> ALTER TABLE mytable DROP pages;//DROP命令不可逆 Query OK, 5 rows affected (0.33 sec) #删除表 mysql> DROP TABLE mytable; Query OK, 0 rows affected (0.02 sec) #创建索引 mysql> ALTER TABLE mytable ADD INDEX(author(20)); mysql> CREATE INDEX author ON mytable(author(20));//也可在创建表时添加索引 Query OK, 5 rows affected (0.08 sec) #创建全文索引 mysql> ALTER TABLE mytable ENGINE = MyISAM; //将表转换为MyISAM mysql> ALTER TABLE mytable ADD FULLTEXT(author,title); #数据库查询 SELECT * FROM mytable; SELECT author,title FROM mytable; SELECT COUNT(*) FROM mytable; //计数 SELECT DISTINCT author FROM mytable; //去重 DELETE FROM mytable WHERE title = 'LEARN MYSQL'; SELECT * FROM mytable WHERE author='Shibingfan'; SELECT * FROM mytable WHERE author LIKE "Shi%"; //like关键字,模糊匹配 SELECT author FROM mytable LIMIT 3; //LIMIT关键字,限定返回的行数 SELECT author FROM mytable LIMIT 3,1; //LIMIT关键字,限定从表的什么位置开始返回多少行 SELECT * FROM mytable WHERE MATCH(author,title) AGAINST('Shi'); //自然语言在FULLTEXT索引列上搜索 SELECT * FROM mytable WHERE MATCH(author,title) AGAINST('+Shi -bing' IN BOLLEAN MODE);//布尔模式下搜索 UPDATE mytable SET author='Shibf' WHERE author='shibingfan'; //更新数据 SELECT author,title FROM mytable ORDER BY author; //排序 SELECT category,COUNT(author) FROM mytable GROUP BY category; //分组 #连接表,新建customers表 SELECT * FROM mytable,customers WHERE mytable.isbn=customers.isbn; SELECT * FROM customers NATURAL JOIN mytable; //自然连接,将相同列名的表自动合并 SELECT * FROM customers JOIN mytable ON mytable.isbn=customers.isbn; SELECT author,title FROM mytable AS au,ti; //AS重命名 SELECT * FROM mytable,customers WHERE mytable.isbn=customers.isbn AND author='shibingfan'; #事物 #事物存储引擎InnoDB mysql> CREATE TABLE accounts(number INT, balance FLOAT, PRIMARY KEY(number))ENGINE InnoDB; mysql> INSERT INTO accounts(number,balance) VALUES(12345,1025.50); mysql> INSERT INTO accounts(number,balance) VALUES(67890,140.00); mysql> SELECT * FROM accounts ; +--------+---------+ | number | balance | +--------+---------+ | 12345 | 1025.5 | | 67890 | 140 | +--------+---------+ #事物处理BEGIN, COMMIT, ROOLBACK mysql> BEGIN; mysql> UPDATE accounts SET balance=balance+25.11 WHERE number=12345; mysql> COMMIT; //确认提交,数据库发生更改 mysql> ROLLBACK; //回滚操作,数据库恢复到BEGIN之前的状态 #使用EXPLAIN,得到查询快照,进而对查询进行优化 mysql> EXPLAIN SELECT * FROM accounts WHERE number='12345'; +----+-------------+----------+------------+-------+---------------+---------+---------+-------+------+----------+-------+ | id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra | +----+-------------+----------+------------+-------+---------------+---------+---------+-------+------+----------+-------+ | 1 | SIMPLE | accounts | NULL | const | PRIMARY | PRIMARY | 4 | const | 1 | 100.00 | NULL | +----+-------------+----------+------------+-------+---------------+---------+---------+-------+------+----------+-------+ #备份和恢复 mysql> LOCK TABLES mytable READ,accounts READ; //锁定表UNLOCK TABLES; mysql> mysqldump -u user -ppassword publications; mysql> mysqldump -u user -ppassword publications mytable > mytable.sql; mysql> mysqldump -u user -ppassword publications --all-database > all_db.sql; mysql> mysqldump -u user -ppassword < all_db.sql; mysql> mysqldump -u user -ppassword -D publications < mytable.sql;
展开 +
收起 -
PHP从入门到精通(第4版) 38.6 MB /
PHP和MySQL Web开发(第4版) 51.6 MB /
PHP、MySQL与JavaScript学习手册(第4版) 76 MB /
PHP开发实例大全:基础卷 232 MB /
PHP7内核剖析 5.6 MB /
PHP核心技术与最佳实践 197.3 MB /
PHP开发实例大全:提高卷 241.1 MB /
深入PHP:面向对象、模式与实践(第3版) 41.3 MB /
ThinkPHP实战 28.5 MB /
PHP和MySQL Web开发(第5版) 27 MB /
PHP+MySQL动态网站开发从入门到精通 36.2 MB /
21天学通PHP(第2版) 211.8 MB /
Copyright 2018-2019 XZ577.com 码农之家 版权所有 苏ICP备18032832号
声明:本站所有资源都来自互联网 如有异议 请与本站联系