* [正则表达式介绍](https://www.kancloud.cn/liuzhen153/tp5-demo/272905#_4)
* [正则表达式简介](https://www.kancloud.cn/liuzhen153/tp5-demo/272905#_6)
* [PHP中,正则表达式的三个作用:](https://www.kancloud.cn/liuzhen153/tp5-demo/272905#PHP_12)
* [与Perl语言兼容的正则表达式处理函数](https://www.kancloud.cn/liuzhen153/tp5-demo/272905#Perl_30)
* [正则表达式的语法规则](https://www.kancloud.cn/liuzhen153/tp5-demo/272905#_41)
* [定界符](https://www.kancloud.cn/liuzhen153/tp5-demo/272905#_59)
* [原子](https://www.kancloud.cn/liuzhen153/tp5-demo/272905#_70)
* [元字符](https://www.kancloud.cn/liuzhen153/tp5-demo/272905#_100)
* [模式修正符](https://www.kancloud.cn/liuzhen153/tp5-demo/272905#_224)
* [与Perl兼容的正则表达式函数](https://www.kancloud.cn/liuzhen153/tp5-demo/272905#Perl_233)
* [子符串的匹配与查找函数](https://www.kancloud.cn/liuzhen153/tp5-demo/272905#_234)
* [字符串的替换函数](https://www.kancloud.cn/liuzhen153/tp5-demo/272905#_335)
* [字符串的分割与连接](https://www.kancloud.cn/liuzhen153/tp5-demo/272905#_358)
# 正则表达式介绍
###### 正则表达式简介
正则表达式是用于描述字符排列和匹配模式的一种语法规则。它主要用于字符串的模式分割、匹配、查找及替换操作。到目前为止,我们前面所用过的精确(文本)匹配也是一种正则表达式。
在PHP中,正则表达式一般是由正规字符和一些特殊字符(类似于通配符)联合构成的一个文本模式的程序性描述。
###### PHP中,正则表达式的三个作用:
* 匹配,也常常用于从字符串中析取信息。
* 用新文本代替匹配文本。
* 将一个字符串拆分为一组更小的信息块。
在PHP中有两套正则表达式函数库,两者功能相似,只是执行效率略有差异:
* 一套是由PCRE(Perl Compatible Regular Expression)库提供的。使用“preg\_”为前缀命名的函数;
* 一套由POSIX(Portable Operating System Interface of Unix )扩展提供的。使用以“ereg\_”为前缀命名的函数;
PCRE来源于Perl语言,而Perl是对字符串操作功能最强大的语言之一,PHP的最初版本就是由Perl开发的产品。
PCRE语法支持更多特性,比POSIX语法更强大。
举例:想一想这两个正则表达式做什么用?
~~~
/^-?\d+$|^-?0[xX][\da-fA-F]+$/
/^[0-9a-zA-Z_-]+@[0-9a-zA-Z_-]+(\.[0-9a-zA-Z_-]+){0,3}$/
~~~
###### 与Perl语言兼容的正则表达式处理函数
| 函数名 | 功能描述 |
| --- | --- |
| preg\_match() | 进行正则表达式匹配 |
| preg\_match\_all() | 进行全局正则表达式匹配 |
| preg\_replace() | 执行正则表达式的搜索和替换 |
| preg\_split() | 用正则表达式分割字符串 |
| preg\_grep() | 返回与模式匹配的数组单元 |
| preg\_replace\_callback() | 用回调函数执行正则表达式的搜索和替换 |
# 正则表达式的语法规则
正则表达式作为一个匹配的模版,是由原子(普通字符,例如字符a到z)、特殊字符(元字符,例如\*、+和?等)、以及模式修正符三部分组成的文字模式。
一个最简单正则表达式至少包含一个原子。
将下面的正则表达式拆分如下:
~~~
'/<a.*?(?:|\\t|\\r|\\n)?href=[\"]?(.+?)[\"]?(?:(?:|\\t|\\r|\\n)+.*?)?>(.+?)<\/a.*?>/sim'
~~~
定界符:两个斜线”/”。
原子用到了等普通字符和\\t \\r \\n等转义字符
元字符使用了 \[\] () | . ? \* + 等具有特殊含义的字符
用到了模式修正符是在定界符最后一个斜线之后的三个字符: s i m
###### 定界符
在程序语言中,使用与Perl兼容的正则表达式,通常都需要将模式表达式放入定界符之间,如“/”。
作为定界符常使用反斜线“/”,如“/apple/”。用户只要把需要匹配的模式内容放入定界符之间即可。作为定界的字符也不仅仅局限于“/”。除了字母、数字和斜线“\\”以外的任何字符都可以作为定界符,像 ‘#’、’|’、’!’ 等都可以的。
* // --使用反斜线作为定界符合法
* |(\\d{3})-\\d+|Sm --使用竖线”|”作为定界符合法
* !^(?i)php\[34\]! --使用竖线”!”作为定界符合法
* {^\\s+(\\s+)?$} --使用竖线”}”作为定界符合法
* /href=‘(.\*)’ --非法定界符,缺少结束定界符
* 1-\\d3-\\d3-\\d4| --非法定界符,缺少其实定界符
###### 原子
原子是正则表达式的最基本的组成单元,而且在每个模式中最少要少包含一个原子。原子是由所有那些未显示指定为元字符的打印和非打印字符组成,具体分为5类。
* 普通字符作为原子: 如 a~z、A~Z、0~9 等
* 一些特殊字符和转义后元字符作为原子:
所有标点符号,但语句特殊意义的符号需要转义后才可作为原子,如:\\” \\’ \* + ? . 等
* 一些非打印字符作为原子: 如:\\f \\n \\r \\t \\v \\cx
* 使用“通用字符类型”作为原子:如:\\d \\D \\w \\W \\s \\S。
* 自定义原子表(\[\])作为原子:如:’/\[apj\]sp/’ ’/\[^apj\]sp/’
正则表达式中常用的非打印字符
| 原子字符 | 含义描述 |
| --- | --- |
| \\cx | 匹配由x指明的控制字符。如\\cM匹配一个Control-M或回车符。x的值必须为A~Z或a~z之一 |
| \\f | 匹配一个换页符。等价于 \\x0c或\\cL |
| \\n | 匹配一个换行符。等价于 \\x0a或\\cJ |
| \\r | 匹配一个回车符。等价于 \\x0d或\\cM |
| \\t | 匹配一个制表符。等价于 \\x09或\\cI |
| \\v | 匹配一个垂直制表符。等价于 \\x0b或\\cK |
正则表达式中常用的“通用字符类型”
| 原子字符 | 描述含义 |
| --- | --- |
| \\d | 匹配任意一个十进制数字,等价于\[0-9\] |
| \\D | 匹配任意一个除十进制数字以外的字符,等价于\[^0-9\] |
| \\s | 匹配任意一个空白符,等价于\[\\f\\n\\r\\t\\v\] |
| \\S | 匹配除空白符以外任何字符,等价于\[^\\f\\n\\r\\t\\v\] |
| \\w | 匹配任意一个数字、字母或下画线,等价于\[0-9a-zA-Z\_\] |
| \\W | 匹配一个除数字、字母或下画线以外的任意一个字符,等价于\[^0-9a-zA-Z\_\] |
###### 元字符

* 字符串边界限制
在某些情况下,需要对匹配范围进行限定,以获得更准确的匹配结果。`^`和`$`分别指定字符串的开始和结束。
例如:
~~~
在字符串Tom and Jerry chased each other in the house until tom’s uncel come in中
元字符“^”或“\A” 置于字符串的开始确保模式匹配出现在字符串首端;
/^Tom/
元字符“$”或“\Z” 置于字符串的结束,确保模式匹配出现字符串尾端。
/in$/
如果不加边界限制元字符,将获得更多的匹配结果。
/^Tom$/精确匹配 /Tom/模糊匹配
~~~
* 单词边界限制
在使用各种编辑软件的查找功能时,可以通过选择“按单词查找”获得更准确的结果。正则表达式中也提供类似的功能。
例如:
~~~
在字符串“This island is a beautiful land”中
元字符`\b`对单词的边界进行匹配;
/\bis\b/ 匹配单词“is”,不匹配“This”和“island”。
/\bis 匹配单词“is”和“island”中的“is”,不匹配“This”
元字符“\B”对除单词边界以外的部分进行匹配。
/\Bis\B/ 将明确的指示不与单词的左、右边界匹配,只匹配单词的内部。所以在这个例子中没有结果。
/\Bis 匹配单词“This”中的“is”
~~~
* 重复匹配
正则表达式中有一些用于重复匹配某些原子的元字符:`?`、`*`、`+`。他们主要的区别是重复匹配的次数不同。
元字符“?”:表示0次或1次匹配紧接在其前的原子。
例如:
~~~
/colou?r/匹配“colour”或“color”。
~~~
元字符“\*”:表示0次、1次或多次匹配紧接在其前的原子。
例如:
~~~
/zo*/可以匹配z、zoo
~~~
元字符“+”:表示1次或多次匹配紧接在其前的原子。
例如:
~~~
/go+gle/匹配“gogle”、“google”或“gooogle”等中间含有多个o的字符串。
~~~
* 任何一个字符
元字符`.`匹配除换行符外任何一个字符。
相当于:[^\\n](https://www.kancloud.cn/liuzhen153/tp5-demo/Unix%E7%B3%BB%E7%BB%9F)或[^\\r\\n](https://www.kancloud.cn/liuzhen153/tp5-demo/windows%E7%B3%BB%E7%BB%9F)。
例如:
~~~
/pr.y/可以匹配的字符串“prey”、“pray”或“pr%y”等。
通常可以使用“.*”组合来匹配除换行符外的任何字符。在一些书籍中也称其为“全匹配符” 或 “单含匹配符”。
/^a.*z$/表示可以匹配字母“a”开头,字母“z”结束的任意不包括换行符的字符串。
/.+/ 也可以完成类似的匹配功能所不同的是其至少匹配一个字符。
/^a.+z$/ 匹配“a%z”不匹配字符串“az”。
~~~
* 重复匹配
元字符`{ }`准确地指定原子重复的次数,指定所匹配的原子出现的次数。
“{m}” 表示其前原子恰好出现m次。
“{m,n}”表示其前原子至少出现m次,至多出现n次。
“{m,}” 表示其前原子出现不少于m次。
例如:
~~~
/zo{1,3}m/ 只能匹配字符串“zom”、“zoom”、或“zooom”。
/zo{3}m/ 只能匹配字符串“zooom”。
/zo{3,}m/ 可以匹配以 “z” 开头,“m”结束,中间至少为3个“o”的字符串。
/bo{0,1}u/ 可以匹配字符串“bought a butter” 中的“bou”和“bu”,等价于bo?u。
~~~
* 原子表 -方括号表达式
原子表`[]`中存放一组原子,彼此地位平等,且仅匹配其中的一个原子。如果想匹配一个 ”a” 或 ”e” 使用 \[ae\]。
~~~
例如: Pr[ae]y 匹配 ”Pray” 或者 ”Prey ”。
~~~
原子表`[^]`或者称为排除原子表,匹配除表内原子外的任意一个字符。
~~~
例如:/p[^u]/匹配“part”中的“pa”,但无法匹配“computer”中的“pu”因为“u”在匹配中被排除。
~~~
原子表`[-]`用于连接一组按ASCII码顺序排列的原子,简化书写。
~~~
例如:/x[0123456789]/可以写成x[0-9],用来匹配一个由 “x” 字母与一个数字组成的字符串。
~~~
例如:
~~~
/[a-zA-Z]/匹配所有大小写字母
/^[a-z][0-9]$/匹配比如“z2”、 “t6” 、“g7”
/0[xX][0-9a-fA-F]/匹配一个简单的十六进制数字,如“0x9”。
/[^0-9a-zA-Z_]/匹配除英文字母、数字和下划线以外任何一个字符,其等价于\W。
/0?[ xX][0-9a-fA-F]+/匹配十六进制数字,可以匹配“0x9B3C”或者“X800”等。
/<[A-Za-z][A-Za-z0-9]*>/可以匹配“<P>”、“<hl>”或“<Body>”等HTML标签,并且不严格的控制大小写。
~~~
* 模式选择符
元字符`|`又称模式选择符。在正则表达式中匹配两个或更多的选择之一。
例如:
在字符串“There are many apples and pears.”中, /apple|pear/在第一次运行时匹配“apple”;
再次运行时匹配“ pear”。也可以继续增加选项,如: /apple|pear|banana|lemon/
* 模式单元
元字符`()`将其中的正则表达式变为原子(或称模式单元)使用。与数学表达式中的括号类似,“()”可以做一个单元被单独使用。
例如:
~~~
/(Dog)+/匹配的“Dog”、“DogDog”、“DogDogDog”,因为紧接着“+”前的原子是元字符“()”括起来的字符串“Dog”。
/You (very )+ old/匹配“You very old”、“You very very old”
/Hello (world|earth)/匹配“Hello world”、“Hello earth”
~~~
一个模式单元中的表达式将被优先匹配或运算。
* 重新使用的模式单元
系统自动将模式单元“()”中的匹配依次存储起来,在需要时可以用`\1`、`\2`、`\3`的形式进行引用。当正则表达式包含有相同的模式单元时,这种方法非常便于对其进行管理。注意使用时需要写成“\\1”、“\\2”
例如:
~~~
/^\d{2}([\W])\d{2}\\1\d{4}$/
匹配“12-31-2006”、“09/27/1996”、“86 01 4321”等字符串。
但上述正则表达式不匹配“12/34-5678”的格式。
这是因为模式“[\W]”的结果“/”已经被存储。下个位置“\1”引用时,其匹配模式也是字符“/”。
当不需要存储匹配结果时使用非存储模式单元“(?:)”
例如/(?:a|b|c)(D|E|F)\\1g/ 将匹配“aEEg”。
在一些正则表达式中,使用非存储模式单元是必要的。
否则,需要改变其后引用的顺序。上例还可以写成/(a|b|c)(C|E|F)\\2g/。
~~~
###### 模式修正符

贪婪匹配 匹配结果存在歧义时取长
懒惰匹配 匹配结果存在歧义时取短
U 懒惰匹配
i 忽略英文字母大小写
x 忽略空白
例如[实例](http://www.jb51.net/article/31450.htm)
# 与Perl兼容的正则表达式函数
###### 子符串的匹配与查找函数
* 函数preg\_match() --执行一个正则表达式匹配
int preg\_match(string $pattern, string $subject\[,array &$matches\])
搜索subject与pattern给定的正则表达式的一个匹配.
~~~
<?php
//preg_match()函数实例
//一个用于匹配URL的正则表达式
$pattern = '/(https?|ftps?):\/\/(www)\.([^\.\/]+)\.(com|net|org)(\/[\w-\.\/\?\%\&\=]*)?/i';
//被搜索字符串
$subject = "网址为http://www.baidu.com/index.php的位置是百度首页";
//使用preg_match()函数进行匹配
if(preg_match($pattern, $subject, $matches)) {
echo "搜索到的URL为:".$matches[0]."<br>"; //数组中第一个元素保存全部匹配结果
echo "URL中的协议为:".$matches[1]."<br>"; //数组中第二个元素保存第一个子表达式
echo "URL中的主机为:".$matches[2]."<br>"; //数组中第三个元素保存第二个子表达式
echo "URL中的域名为:".$matches[3]."<br>"; //数组中第四个元素保存第三个子表达式
echo "URL中的顶域为:".$matches[4]."<br>"; //数组中第五个元素保存第四个子表达式
echo "URL中的文件为:".$matches[5]."<br>"; //数组中第六个元素保存第五个子表达式
} else {
echo "搜索失败!"; //如果和正则表达式没有匹配成功则输出
}
?>
~~~
* 函数preg\_match\_all() --执行全局正则表达式匹配
int preg\_match\_all(string $pattern ,string $subject ,array &$matches \[, int $flags\])
搜索subject中所有匹配pattern给定正则表达式 的匹配结果并且将它们以flag指定顺序输出到matches中. 参数flags是指定matches的数组格式。
~~~
<?php
//声明一个可以匹配URL的正则表达式
$pattern = '/(https?|ftps?):\/\/(www|bbs)\.([^\.\/]+)\.(com|net|org)(\/[\w-\.\/\?\%\&\=]*)?/i';
//声明一个包含多个URL链接地址的多行文字
$subject = "网址为http://www.baidu.com/index.php的位置是百度,
网址为http://www.google.com/index.php的位置是谷歌。";
$i = 1; //定义一个计数器,用来统计搜索到的结果数
//搜索全部的结果
if(preg_match_all($pattern, $subject, $matches, PREG_SET_ORDER)) {
foreach($matches as $urls) { //循环遍历二维数组$matches
echo "搜索到第".$i."个URL为:".$urls[0]."<br>";
echo "第".$i."个URL中的协议为:".$urls[1]."<br>";
echo "第".$i."个URL中的主机为:".$urls[2]."<br>";
echo "第".$i."个URL中的域名为:".$urls[3]."<br>";
echo "第".$i."个URL中的顶域为:".$urls[4]."<br>";
echo "第".$i."个URL中的文件为:".$urls[5]."<br>";
$i++; //计数器累加
}
} else {
echo "搜索失败!";
}
~~~
* 函数preg\_grep() --返回匹配模式的数组条目
array preg\_grep ( string $pattern , array $input \[, int $flags = 0 \] )
返回给定数组input中与模式pattern 匹配的元素组成的数组。
~~~
<?php
$array = array("Linux RedHat9.0", "Apache2.2.9", "MySQL5.0.51", "PHP5.2.6", "LAMP", "100");
//返回数组中以字母开始和以数字结束,并且没有空格的单元,赋给变量$version
$version = preg_grep("/^[a-zA-Z]+(\d|\.)+$/", $array);
print_r($version);
//输出:Array ( [1] => Apache2.2.9 [2] => MySQL5.0.51 [3] => PHP5.2.6 )
?>
~~~
* 其它子串处理函数:strstr()、strpos()、strrpos()、substr()
~~~
<?php
echo strstr("this is a test!", "test"); //输出test!
echo strstr("this is a test!", 115); //搜索 "s" 的ASCII值所代表的字符输出s is a test!
?>
~~~
获取URL中文件名的部分
~~~
<?php
/**
用于获取URL中的文件名部分
@param string $url 任何一个URL格式的字符串
@return string URL中的文件名称部分
*/
function getFileName($url) {
//获取URL字符串中最后一个“/”出现的位置,再加1则为文件名开始的位置
$location = strrpos($url, "/")+1;
//获取在URL中从$location位置取到结尾的子字符串
$fileName = substr($url, $location);
//返回获取到的文件名称
return $fileName;
}
//获取网页文件名index.php
echo getFileName("http://bbs.lampbrother.net/index.php");
//获取网页中图片名logo.gif
echo getFileName("http://bbs.lampbrother.com/images/Sharp/logo.gif");
//获取本地中的文件名php.ini
echo getFileName("file:///C:/WINDOWS/php.ini");
~~~
###### 字符串的替换函数
* preg\_replace —执行一个正则表达式的搜索和替换
~~~
mixed preg_replace ( mixed $pattern , mixed $replacement,mixed $subject [,int $limit = -1])
~~~
搜索subject中匹配pattern的部分, 以replacement进行替换.
~~~
<?php
//可以匹配所有HTML标记的开始和结束的正则表达式
$pattern = "/<[\/\!]*?[^<>]*?>/is";
//声明一个带有多个HTML标记的文本
$text = "这个文本中有<b>粗体</b>和<u>带有下画线</u>以及<i>斜体</i>
还有<font color='red' size='7'>带有颜色和字体大小</font>的标记";
//将所有HTML标记替换为空,即删除所有HTML标记
echo preg_replace($pattern, "", $text);
//通过第四个参数传入数字2,替换前两个HTML标记
echo preg_replace($pattern, "", $text, 2);
~~~
###### 字符串的分割与连接
* preg\_split — 通过一个正则表达式分隔字符串
~~~
array preg_split ( string $pattern , string $subject [, int $limit = -1 [, int $flags = 0 ]] )
~~~
通过一个正则表达式$pattern分隔给定字符串$subject。其中$limit是最大替换个数。
flags可以是任何下面标记的组合
PREG\_SPLIT\_NO\_EMPTY:返回分隔后的非空部分
PREG\_SPLIT\_DELIM\_CAPTURE:用于分隔的模式中的括号表达式将被捕获并返回.
PREG\_SPLIT\_OFFSET\_CAPTURE:返回附加字符串偏移量
~~~
<?php
//按任意数量的空格和逗号分隔字符串,其中包含" ", \r, \t, \n and \f
$keywords = preg_split ("/[\s,]+/", "hypertext language, programming");
print_r($keywords);
//分割后输出Array ( [0] => hypertext [1] => language [2] => programming )
//将字符串分割成字符
$chars = preg_split('//', "lamp", -1, PREG_SPLIT_NO_EMPTY);
print_r($chars); //分割后输出Array ( [0] => l [1] => a [2] => m [3] => p )
//将字符串分割为匹配项及其偏移量
$chars = preg_split('/ /','hypertext language programming', -1,
PREG_SPLIT_OFFSET_CAPTURE);
print_r($chars);
/* 分割后输出:
Array ( [0] => Array ( [0] => hypertext [1] => 0 )
[1] => Array ( [0] => language [1] => 10 )
[2] => Array ( [0] => programming [1] => 19 ) ) */
~~~
> Have a try
> 1.编写一个有效手机号码的正则表达式。
> 2.定义一个有效的时间正则表达式。
> 3.编写一个函数,使用正则替换方式能够实现清除字符串中的所有HTML标签。
> 4.将下面文件中的代码中所有的图片标签匹配出来,并以表格方式输出信息
~~~
<div class="clearfix goodsBox">
<a href="goods.php?id=24">
<img src="images/111.jpg" alt="诺基亚5530"/></a><br />
<a href="goods.php?id=25">
<img src="images/222.jpg" alt="摩托罗拉M80"/></a><br />
<a href="goods.php?id=26">
<img src="images/333.jpg" alt="三星A50"/></a><br />
<a href="goods.php?id=27">
<img src="images/444.jpg" alt="诺基亚N97"/></a><br />
<a href="goods.php?id=28">
<img src="images/555.jpg" alt="LG5280"/></a><br />
<a href="goods.php?id=29">
<img src="images/666.jpg" alt="lenovoA38"/></a><br />
</div>
~~~

使用php正则对表单数据验证,提示方式不限。

- 空白目录
- 常用功能
- PHP中常用的header头部定义
- 压缩包下载1
- 压缩包下载2
- 文件下载
- php常用加密函数总结
- url请求参数加解密
- PHP操作大全
- 指定月份的第某个月
- PHP 数组和字符串互相转换实现方法
- php字符串截取的简单方法
- php 根据子分类循环获取其父级分类
- PHP文件操作功能函数大全
- PHP常用到的功能函数
- 自定义php常用函数110个
- 自定义PHP常用功能函数
- 开发中常用自定义小功能函数
- PHP判断远程文件是否存在
- PHP写文件函数
- PHP生成GUID的函数
- PHP常用正则表达式汇总
- php字符串压缩
- PHP无限分组
- PHP简单 对象(object) 与 数组(array) 的转换
- PHP数组常用函数
- PHP调式测试函数
- PHP常用字符串的操作函数
- mysql 常用内置函数
- PHP通用请求函数CURL封装
- 裁剪图片PHP代码
- PDO操作MYSQL封装类
- 10个实用的PHP代码片段
- 获取访问者IP地址
- PHP实现发红包程序
- PHP把文本转换成图片
- curl重写php file_get_contents
- PHP生成一个随机字符串
- PHP读文件和写文件
- PHP根据key 给二维数组分组
- php中curl模拟post提交多维数组
- 33个超级有用必须要收藏的PHP代码样例
- PHP防XSS 防SQL注入的代码
- php常用数组array函数实例总结
- 用PHP遍历目录下的全部文件
- GBK2UTF8
- php函数类库
- 一、php一些常用的校验
- 1.1、校验是否为空(null/空串)1
- 1.2、校验是否为纯数字1
- 1.3、校验是否为纯数字(正则)1
- 1.4、检验手机号1
- 1.5、校验邮箱格式1
- 1.6、检查密码长度是否符合规定1
- 二、手机类型访问判断
- 三、字符集文件转换
- 3.1、utf8转gbk
- 3.2、gbk转utf8
- 3.3、繁体转简体
- 3.4、简体转繁体
- 3.5、unicode转utf8
- 3.6、utf8转unicode
- 3.7、Ascii转拼音
- 3.8、gbk转拼音
- 3.9、数组 utf8转gbk
- 3.10、数组 gbk转utf8
- 3.11、json 处理gbk转码utf-8问题( json_encode转换数组,值为null)
- 3.12、Unicode解码
- 四、文档目录操作
- 4.1、转化 \ 为 /
- 4.2、创建目录
- 4.3、拷贝目录及下面所有文件
- 4.4、转换目录下面的所有文件编码格式
- 4.5、列出目录下所有文件
- 4.6、设置目录下面的所有文件的访问和修改时间
- 4.7、目录列表
- 4.8、删除目录及目录下面的所有文件
- 4.9、取得文件扩展
- 4.10、查询字符是否存在于某字符串
- 4.11、获取文件目录列表
- 4.12、删除一个路径下的所有文件夹和文件的方法
- 4.13、文件下载
- 五、session与cookie
- 5.1、设置session
- 5.2、读取session
- 5.3、清除session
- 六、CURL操作
- 6.1、发起get请求
- 6.2、发起post请求
- 6.3、curl获取跳转后的网址的url
- 6.4、curl判断远程图片是否加防盗链
- 6.5、curl获取301页面的内容
- 6.6、curl判断文件是否存在(404)
- 6.7、php的curl封装类
- 七、日期、时间与字节转换
- 7.1、转换字节数为其他单位(Gb、Mb等)
- 7.2、时间转换(将秒转换为时间)
- 7.3、将秒转换成 天-时分秒
- 7.4、时间转换(将时分秒转换为秒)
- 7.5、计算两个时间相差的天
- 7.6、获取文件大小并格式化
- 7.7、返回13位时间戳
- 7.8、返回与当前时间的差距,如1分钟前,2小时前,5月前等
- 7.8、PHP中DateTime的常用方法
- 八、对象、数组、字符串、转义等
- 8.1、将数组转换为对象
- 8.2、将对象转换为数组
- 8.3、将字符串转换为数组
- 8.4、将数组转换为字符串
- 8.5、将文本格式成适合js输出的字符串
- 8.6、返回经addslashes(转义)处理过的字符串或数组
- 8.7、返回经stripslashes(删除反斜杠)处理过的字符串或数组
- 8.8、返回经htmlspecialchars(字符转html)处理过的字符串或数组
- 8.9、安全过滤函数
- 8.10、xss过滤函数
- 8.11、过滤ASCII码从0-28的控制字符
- 8.12、格式化文本域内容
- 8.13、将文本格式成适合js输出的字符串
- 8.14、转义 javascript 代码标记
- 8.15、数组转码
- 8.16、php用逗号格式化数字
- 8.17、数组去重
- 8.18、字符串去重
- 8.19、数组排序
- 九、加密扩展
- 9.1、简单的字符串加密、解密函数
- 9.2、简单的加密解密类
- 9.3、简单对称加密算法2
- 9.4、常用对称加密算法(DES/AES)类
- 9.5、3des加密解密类-三重数据加密算法
- 十、随机数、获取请求ip等
- 10.1、产生随机字符串
- 10.2、获取请求ip
- 10.3、生成一定范围内的随机数字
- 10.4、生成不重复的随机数
- 10.5、生成一定数量的随机数,并且不重复
- 10.6、生成32位随机数
- 10.7、生成9位随机数字(可以做qq用)
- 十一、其他
- 11.1、php对html页面压缩函数
- 11.2、构建层级(树状)数组、
- 11.3、获取内容中的图片
- 11.4、生成sql语句,如果传入$in_cloumn 生成格式为 IN('a', 'b', 'c')
- 11.5、打印各种类型的数据,调试程序时使用。
- 11.6、URL重定向
- 11.7、替换html代码里的所有图片的url,新增url
- 11.8、去除html里的p标签
- 11.9、去除字符串中所有html代码(格式化代码html)
- 11.10、将number_format的输出转换为php数字
- 11.7、内容里批量替换图片的url地址为自己的地址
- 十二、类库
- 1、php 5.6.3PHP封装的数据库模型Model类完整示例【基于PDO】
- 2、Curl类库
- 3、php PDO数据库类库
- 4、获取网站title
- 字符串配置转数组
- 数组助手类1
- 获取随机字符串
- 获取头像存储路径
- 单位转换函数
- 获取字符串长度
- 获取中文字符拼音首字母
- 获取当前页面URL地址
- 获取n天前的时间戳
- 获取n天前0点的时间戳
- 获取ip地址所在的区域
- 邮箱验证
- PHP常用函数总结(160多个)
- PHP判断输入数据是否合法常用的类
- 无限极分类
- php ajax实现分页功能
- 代码
- html
- sendAjax.js
- data.js
- page.js
- page.css
- php基础
- 字符串
- 字符串1
- 字符串常用函数
- 数组
- 数组简介
- 数组的定义
- 数组的操作
- 1 数组的计算
- 2 for循环遍历索引数组
- 3 foreach遍历关联数组
- 4 list、each函数遍历数组
- 5 常用操作数组函数
- 数组的常用函数
- 时间
- PHP的日期和时间
- 1 获取时期时间信息函数
- 2 日期验证函数
- 3 获取本地化时间戳函数
- 4 程序执行时间检测
- 文件操作
- 文件处理系统
- 1 读取文件
- 2 创建和修改文件内容
- 3 创建临时文件
- 4 移动、拷贝和删除文件
- 5 检测文件属性函数
- 6 文件常用函数和常量
- 7 文件锁处机制
- 8 目录处理函数
- 9 文件权限设置
- 10文件路径函数
- 11 小小文件留言本
- 12 修改配置文件的实例
- 流程控制
- 流程控制结构
- if条件结构流程
- 1 if语句
- 2 嵌套if...else...elseif结构
- 3 if语句多种嵌套
- 分支结构switch语句的使用
- 循环语句的使用
- 1 while循环
- 2 do...while循环的区别
- 3 for循环控制语句
- 4 goto语法
- 5 declare 语法
- 函数
- PHP函数
- 自定义函数
- 自定义函数高级调用
- 1 回调函数
- 2 变量函数
- 3 匿名函数
- 4 内部函数
- 5 变量作用域
- 6 参数的引用
- 7 递归函数
- 8 静态变量
- 使用系统内置函数
- 文件包含函数
- 数学常用函数
- 正则
- PHP正则表达式
- 1 正则表达示的定界符
- 2 正则表达示中的原子
- 3 正则表示中的元字符
- 4 正则达达示中的模式修正符
- 5 写正则的诀窍和常用正则
- 6 用正则写一个UBB文本编辑器
- 常用正则
- 错误处理
- 1 禁止显示错误
- 2 错误报告级别
- 3 错误记录日志
- 4 自定义错误处理函数
- 错误及异常处理机制、错误日志
- 过滤器
- 表达式
- PHP基本语法
- PHP基本语法(一)
- PHP基本语法(二)
- GD库图像处理
- 文件上传和下载
- PHP文件上传
- 1 文件上传需要注意php.ini文件
- 2 文件上传的步骤
- 3 文件上传表单注意事项
- 4 按照数组和步骤完成文件上传
- 5 多文件上传
- 6 文件上传进度处理
- PHP图像处理
- 1 学习前的准备工作
- 2 用图片处理函数画一张图
- 3 生成验证码
- 4 图像缩放和裁剪技术
- 5 图片水印处理
- 常量和变量
- 1 用常量限制用户跳过某些文件
- .2 可变变量
- 3 外部变量
- 4 环境变量
- 5 变量引用
- PHP表达式与运算符
- 1 算术运算
- 2 赋值运算
- 3 自加、自减运算
- 4 比较运算
- 5 逻辑运算
- 6 位运算
- 7 运算符优先级
- 8 三元运算符和其它运算符
- 会话管理和控制
- 1 Cookie概述
- 2PHP中的Cookie
- 3 session概述
- 4 PHP中使用session
- 5 SESSION应用实例
- 会话技术(cookie session)
- 会话技术 session场景使用介绍!
- PHP.in中session和cookie的配置说明
- 通过cURL来做小偷程序
- 1 curl的使用步骤
- 2 自定义get方法抓取网页
- 3 使用post发送数据
- PHP基础数据类型及运算符介绍
- 数据类型
- 1 整型就是整数
- 2 布尔就是易经的知识
- 3 字符串
- 4 浮点型
- 5 重要:if和else语法
- 6 NULL类型
- 7对象以后会学
- 8 数组会有单纯的一个章节
- 9 资源类型
- 10 眼前了解回调类型即可
- 11 查看和判断数据类型
- 12 数据类型的自动转换和强制转换
- PHP版本
- php自动加载
- xml的介绍
- openssl的介绍
- php文件管理
- 数据库Mysql
- 数据库之MySQL(概述)
- PHP数据库编程
- 数据库编程(2)
- SQL常见的可优化点
- Mysql设计与优化专题
- mysql的最佳索引攻略
- 详解慢查询
- ER图,数据建模与数据字典
- 数据中设计中的范式与反范式
- 字段类型与合理的选择字段类型
- 表的垂直拆分和水平拆分
- 21分钟 MySQL 入门教程
- 一、MySQL的相关概念介绍
- 二、Windows下MySQL的配置
- 三、MySQL脚本的基本组成
- 四、MySQL中的数据类型
- 五、使用MySQL数据库
- 六、操作MySQL数据库
- 七、创建后的修改
- 八、附录
- 3天入门MySQL
- 前言1
- 01. 数据库的用途和概念
- 02. 娱乐化讲解表关系
- 03. mysql 数据库安装
- 04. 数据语句操作类型
- 05. 连接数据库
- 06. 数据库结构定义语句
- 6.2 数据表操作
- 6.1 数据库操作
- 6.3 数据字段操作
- 07. 类型、字符集、引擎和索引
- 7.1 数据类型
- 7.2 字符集
- 7.3 表引擎
- 7.4 索引
- 08. 增删改查
- 12.8.1 插入记录
- 12.8.2 查询记录
- 12.8.3 多表联合查询
- 12.8.4 更新记录
- 12.8.5 删除记录
- 09. DCL语句
- 10. 常用工具简介
- 附录1 . 学习MySQL常用的英文单词
- MySQL 超新手入门
- (1) 重新开始
- (2) 数据库概论和 MySQL 安装
- (3) SELECT 基础查询
- (4) 运算式和函数
- (5) JOIN 和 UNION 查询
- (6) CRUD 和资料维护
- (7) 字符集和数据库
- (8) 存储引擎和数据类型
- (9) 表格和索引
- (10) 子查询
- (11) 视图
- (12) 预处理语句
- (13) 存储过程入门
- (14) 存储过程的变量和流程
- (15) 存储过程进阶
- (16) 触发器
- (17) 资料库资讯
- (18) 错误处理和查询
- (19) 导入和导出数据
- (20) 性能
- php常用类
- 面向对象
- 面向对象(OOP)编程完全教程
- 1.什么是面向对象
- 2.什么是类,什么是对象,类和对象这间的关系
- 3.什么是面向对象编程呢
- 4.如何抽象出一个类
- 5.如何实例化对象
- 6.如何去使用对象中的成员
- 7.特殊的引用this的使用
- 8.构造方法__construct()与析构方法__destruct()
- 9.封装性(var与public,protected,private的关系)
- 10.__set(),__get(),__isset(),__unset()四个方法的应用
- 11.类的继承
- 12.重载新的方法(parent::)
- 13.访问类型(public,protected,private)
- 14.final关键字的应用
- 15.static和const关键字的使用(self::)
- 16.__toString()方法
- 17.克隆对象__clone()方法
- 18.__call()处理调用错误
- 19.抽象方法和抽象类(abstract)
- 20.PHP5接口技术(interface)
- 21.多态的应用
- 22.把对象串行化serialize()方法,__sleep()方法,__wakeup()方法
- 23.自动加载类 __autoload()函数
- PHPer进阶
- 单例模式
- 工厂方法模式
- 适配器模式
- 建造者模式(通过选择mysql,mongo数据库链接类型做说明)
- 委托模式
- 对象基础实践
- 深入了解面向对象高级特性
- 抽象类和接口类的实际作用
- PHP解决问题进化论(整理笔记)
- PHP7新特性整理介绍篇
- php-fpm 与 Nginx优化总结
- Centos+Nginx+PHP7.0编译安装(和PHP5.6老版本共存)
- PHP7:Mongodb API使用
- PHP之include/require深入了解
- PHP内核了解:生命周期及运行模式
- 面向对象总结
- 基础概念
- 什么是类
- 什么是对象
- 静态属性
- 三大特征
- 封装
- 继承
- 多态
- 9个常用的魔术方法
- __construct
- __destruct
- __call
- __get
- __set
- __sleep
- __toString
- __clone
- __autoload
- 抽象类
- 对象接口
- 面向对象设计模式
- 前言
- (一),单例模式
- (二),Builder模式
- (三),原型模式
- (四),工厂方法模式
- (五),策略模式
- (六),状态模式
- (七),观察者模式
- (八),责任链模式
- (九),适配器模式
- (十),代理模式
- (十一),装饰模式
- (十二),外观模式
- (十三),解释器模式
- PHP开发第一步,PHP5.6 + MySQL5.5 + Apache2.4环境搭建
- 面向对象1
- 类和对象
- 面向对象高级
- php编程总结
- PHP学习笔记
- MySQL学习笔记
- php基础知识
- javascript
- javascript DOM总结
- JavaScript (JS) 函数补充 (含arguments、eval()、四种调用模式)
- JavaScript (JS) 面向对象编程 浅析 (含对象、函数原型链、闭包解析)
- JavaScript (JS)基础:BOM 浅析 (含window对象相关基本方法、属性解析)
- JavaScript (JS)基础:DOM 浅析 (含数组Array、字符串String基本方法解析)
- JavaScript (JS)基础:ECMAScript 浅析 (含Math基本方法解析)
- js功能函数
- 一、js一些常用的校验
- 1.1、校验是否为空(null/空串)
- 1.2、校验是否为纯数字
- 1.3、校验是否为纯数字(正则)
- 1.4、检验手机号
- 1.5、验证座机号
- 1.6、校验ip
- 1.7、检验url地址
- 1.8、检验身份证
- 1.9、检验邮箱
- 1.10、检验日期
- 1.11、检验金额
- 1.12、检验否是汉字
- 1.13、校验数字的表达式
- 1.14、校验字符的表达式
- 1.15、特殊需求表达式
- 1.16、检测密码强度
- 二、手机类型判断
- 三、返回字符串长度,汉子计数为2
- 四、获取url中的参数
- 五、js 绑定事件 适用于任何浏览器的元素绑定
- 六、获得当前浏览器JS的版本
- 七、获取当前点击事件的Object对象
- 八、字符串截取方法
- 九、JS 弹出新窗口全屏
- 十、全选/全不选
- 十一、js 判断浏览器
- 十二、JS判断两个日期大小
- 十三、移除事件
- 十四、回车提交
- 十五、JS 执行计时器
- 十六、JS 写Cookie
- 十七、JS 读Cookie
- 十八、Ajax 请求
- 十九、JS StringBuilder 用法
- 二十、JS 加载到顶部LoadJS
- 二十一、清空 LoadJS 加载到顶部的js引用
- 二十二、JS 替换非法字符
- 二十三、按Ctrl + Entert 直接提交表单
- 二十四、获取当前时间
- 二十五、Js 去掉空格方法
- 二十六、js 动态移除 head 里的 js 引用
- 二十七、整个URL 点击事件 加在URL里的onclick里
- 二十八、判断浏览器使用的是哪个 JS 版本
- 二十九、加入收藏夹
- 三十、动态加载 CSS 样式文件
- 三十一、返回脚本内容
- 三十二、清除脚本内容
- 三十三、返回按ID检索的元素对象
- 三十四、显示元素 待验证
- 三十五、与insertBefore方法(已存在)对应的insertAfter方法
- 三十六、光标停在文字的后面,文本框获得焦点时调用
- 三十七、检验URL链接是否有效
- 三十八、格式化CSS样式代码
- 三十九、压缩CSS样式代码
- 四十、 获取当前路径
- 四十一、ip 转 整型
- 四十二、整型解析为IP地址
- 四十三、删除cookies
- 四十四、判断是否以某个字符串结束
- 四十五、判断是否以某个字符串开头
- 四十六、根据样式名称检索元素对象
- 四十七、 获取移动设备初始化大小
- 四十八、 获取移动设备最大化大小
- 四十九、获取移动设备屏幕宽度
- 五十、获取页面scrollLeft
- 六十、获取页面宽度
- 六十一、获取页面scrollTop
- 六十二、获取页面可视高度
- 六十三、判断数组元素是否重复
- 六十四、生成随机数
- 六十五、数组去重
- 六十六、深度拷贝对象
- 六十七、全部替换replaceAll
- 六十八、阻止冒泡
- 六十九、返回顶部
- 七十、jsonp跨域请求
- 七十一、到某一个时间的倒计时
- 七十二、清除对象中值为空的属性
- 七十三、获取文件后缀名的方法
- 七十四、判断一个对象是不是数组类型
- 七十五、冒泡排序
- 七十六、实现一个最简单的模板引擎
- 七十七、数组最大值最小值
- 七十八、数组求和,平均值
- 七十九、从数组中随机获取元素
- 八十、返回对应元素在数组中的下标
- 八十一、返回数组(字符串)一个元素出现的次数
- 八十二、得到n1-n2下标的数组,即返回数组下标arr[n1]到数组arr[n2]的值
- 八十三、筛选数组,这里所做的就只是删除相应的数组
- 八十四、去除字符串空格
- 八十五、字母大小写切换
- 八十六、字符串循环复制,前面的要循环的字符串,后面的要循环的次数
- 八十七、字符串替换,这里的要替换的字符串必须是连续的
- 八十九、将时间戳转换成日期格式
- 九十、检验字符串是否超过某个值,超出出现省略号
- 九十一、随机码,这里的参数count必须是 2 ~ 36 之间的整数
- 九十二、查找字符串中某字符出现的次数
- 九十三、JS插入排序
- 九十四、获取前num天的日期
- 九十五、js实时计算rem,宽度大于1920px时1rem=100px
- 九十六、原生JS获取鼠标XY轴的值
- 九十七、转成XML对象
- 九十八、Js身份证验证函数
- 九十九、格式化数字串
- 一百、原生Ajax 请求
- 一百零一、两条直角边算角度
- 一百零二、禁止readonly和disabled的input退格键返回上一页
- 一百零三、生成随机字母字符串
- 一百零四、float偏移处理
- 一百零五、根据月份获取起止时间戳
- 一百零六、工具函数对象书写例子,可自己扩展
- 一百零七、js字符串压缩算法与解压
- 一百零八、指定数组元素排序(正序倒序)
- 一百零九、js所有的内置方法
- JavaScript 常用函数总结
- js常用函数整理
- JavaScript基础
- javaScript基础&DOM(一)
- javaScript基础&DOM(二)
- JavaScript语法基础1
- javascript数组对象
- javascript字符串函数
- jquery、javascript实现(get、post两种方式)跨域解决方法
- php MVC原理
- php基础知识(语法与原理)
- PHP编程经验
- 第一章 代码风格
- 第二章 代码注释
- 第三章 目录结构
- 第四章 文件管理
- 第五章 代码整理
- 第六章 路径和路由
- 第七章 实用表格
- 第八章 实用开发软件
- 第九章 技术提升心得
- 第十章 实用插件搭配
- 第十一章 常用设计模式
- PHP编码规范文档
- PHP加快执行效率的写法规范
- VUE避坑指南
- 从零开始学Vue
- Vue-cli
- PHP工具类
- 数组助手类
- 通用助手类
- 时间助手类
- 图像
- 拼音助手类
- 字符串助手类
- 验证助手类
- 时间类封装
- 数据库链式调用封装
- curl 封装 / 发送文件 / 远程下载到服务器
- php Captcha 驗證碼類
- php 替换敏感字符串
- php返回数据格式化类
- php XML文件解释类
- php CSS Update Class
- PHPMailer - PHP email transport class
- PHP 遍历文件夹及文件类及处理类
- 自动登入google play下载app report
- php click captcha 验证码类
- php 获取页面中的指定内容类
- php 支持断点续传的文件下载类
- php 缩略图生成类,支持imagemagick及gd库两种处理
- php 根据url自动生成缩略图
- php 过滤html标记属性类
- php HTTP请求类,支持GET,POST,Multipart/form-data
- php Cookies 操作类
- php 密码生成类
- php main 与 iframe 相互通讯类(同域/跨域)
- php 根据url自动生成缩略图,并处理高并发问题
- php Timer 页面运行时间监测类
- php 双向队列类
- php 导出CSV抽象类
- php zip文件内容比较类
- php 获取/设置用户访问页面语言类
- php 获取Youtube某个User所有Video信息
- php 字符编码转换类,支持ANSI、Unicode、Unicode big endian、UTF-8、UTF-8+Bom 互相转换
- php 版本处理类
- TP5
- 验证器
- 内置规则
- tp5数据库操作
- 数据添加或更新
- 静态增删改查 / 关联操作
- 日志操作
- 路由
- taglib-自制标签
- migrations 数据库迁移
- TP3.2
- 数据库操作
- 发送邮箱
- Tp6
- Redis
- 字符串 / 列表 / Hash / Set / Zet / 基数统计算法
- 队列 /订阅发布 php实例
- 事务 / bitmap 位图 / 地理位置
- 备份与恢复 / 性能测试
- 设置密码 / 模糊查询
- 性能优化
- php+redis实现高并发模拟下单、秒杀、抢购操作
- Redis 的简单介绍
- Redis 最常见的问题
- 扩展thinkphp5的redis类方法
- php for redis
- 前言11
- 字符串11
- 集合
- 有序集合
- 列表
- 哈希
- key操作
- Redis 基础教程
- 简介
- 递增
- 过期
- 列表1
- 集合1
- 可排序集合
- 哈希表
- Redis学习文档
- 序言
- 简介1
- Window 下安装
- 执行
- Linux 下安装
- 数据类型1
- String
- Hash
- List
- Set
- zset
- 区别和详解
- 命令
- Keys
- flushall
- del
- ping
- 设置密码
- 实例
- PHP+Redis 实例【一】点赞 + 热度
- Thinkphp+Redis
- 数据队列
- 字符串111
- 列表11
- 集合11
- 哈希1
- 有序集合1
- 添加redis函数助手
- 基础知识
- Redis的7个应用场景
- 深入解析Redis中常见的应用场景
- MongoDB和Redis的区别
- 相关书籍
- 函数整理
- redis知识总结
- redis学习文档
- 常用命令
- 运维常用命令
- 通用操作相关命令
- 字符串相关命令
- 链表list相关命令
- 集合set相关命令
- 有序集合相关指令
- 哈希hash
- 事务
- 订阅和发布
- rdb快照持久化
- aof日志持久化
- redis集群 主从配置
- sentinel监视
- key的设计
- Redis实践技巧
- 前言111
- 第1章 keys键操作
- 第2章 string类型
- 第3章 list类型
- 第4章 set类型
- 第5章 sort set排序类型
- 第6章 hash类型
- 第7章 redis备份
- 第8章 主从复制
- 第9章 设置密码
- 第10章 事务
- 第11章 php操作redis
- Redis常见7种使用场景(PHP实战)
- redis
- jQuery学习总结
- jquery总结2
- Git
- php微信接口开发
- php微信接口开发(卷一)
- 开发心得
- 申请微信测试号
- 打通服务器与微信之间的通信
- 接受微信发送的信息
- 回复微信发送的信息
- 微信回复单图文消息
- 微信回复多图文消息
- curl用法小测试
- 获取access_token
- 获取微信的media_id
- 微信回复图片消息
- 关注自动回复
- 微信生成自定义菜单
- 【实战】后台管理自定义菜单
- 1.页面数据提交并展示
- 2.组装一、二级菜单
- 3.完成简略自定义菜单
- 【实战】thinkphp框架开发微信接口
- 1.相关东西下载地址
- 2.配置thinkphp3.2.3
- 3.微信回复文本消息
- 4.微信获取个人基本信息
- php微信接口开发(卷二)
- 网页授权获取用户基本信息
- 1.输出回调地址
- 2.获取用户信息页面
- 3.数据写入数据库
- 用户分组接口的使用
- 1.对上节代码的优化处理
- 2.获取所有用户组
- 3.创建一个分组
- 4.查询指定用户的分组
- 群发消息的接口的使用
- 1.创建新控制器
- 2.预览群发消息接口
- 3.群发消息
- 生成带参数的二维码
- 长连接转短连接
- 微信js-SDK的引入
- 1.获取jsapi_ticket
- 2.判断当前客户端版本是否支持指定JS接口
- 图像接口的使用
- 扫一扫二维码接口
- php微信接口开发(卷三)
- 微信公众号
- 1.前提条件
- 2.微信公众平台需要做的设置
- 微信支付商户平台
- 1.操作证书
- 2.配置密钥
- 3.配置支付授权目录
- 公众号支付(Jsapi支付)
- 1.SDK与demo下载
- 2.测试DEMO
- 3.将支付接口更为真实公众号信息
- 微信商城
- 1.tp3+bootstrap使用实战
- 2.图片上传实战
- 3.商城后台实战
- 4.购买商城实战
- 5.下订单后使用微信支付
- 小程序基础
- 简介12
- 接入指南
- 开发者工具的使用
- 代码审核与发布
- 小程序申请微信认证
- 小程序申请微信支付
- 小程序绑定微信开放平台帐号
- app.json配置
- 配置demo
- pages
- window
- tabBar
- networkTimeout
- debug
- page.json
- API
- 发起网络请求
- 网络请求提交表单
- 引入
- WeUI
