程序员学习资源站

当前位置:首页 > ▲▲▲【编程教程】▲▲▲ > java > PHP、MySQL与JavaScript学习手册

《PHP、MySQL与JavaScript学习手册》学习笔记与总结

  • 发布时间:2018-10-19
  • 作者:admin
  • 标签:

php常用系统函数大全

字符串函数

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 解码

MySQL常用命令

# @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;

 

展开 +

收起 -

用户反馈

Copyright 2018-2019 XZ577.com 码农之家 版权所有 苏ICP备18032832号

声明:本站所有资源都来自互联网 如有异议 请与本站联系