php 正则表达式

正则表达式(regular expression)描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。

PCRE 函数

函数描述
preg_filter执行一个正则表达式搜索和替换
preg_grep返回匹配模式的数组条目
preg_last_error返回最后一个PCRE正则执行产生的错误代码
preg_match_all执行一个全局正则表达式匹配
preg_match执行一个正则表达式匹配
preg_quote转义正则表达式字符
preg_replace_callback_array执行一个正则表达式搜索并且使用一个回调进行替换
preg_replace_callback执行一个正则表达式搜索并且使用一个回调进行替换
preg_replace执行一个正则表达式的搜索和替换
preg_split通过一个正则表达式分隔字符串

PREG 常量

常量描述自哪个版本起
PREG_PATTERN_ORDER结果按照”规则”排序,仅用于preg_match_all(), 即$matches[0]是完整规则的匹配结果, $matches[1]是第一个子组匹配的结果,等等。since
PREG_SET_ORDER结果按照”集合”排序,仅用于preg_match_all(), 即$matches[0]保存第一次匹配结果的所有结果(包含子组)信息, $matches[1]保存第二次的结果信息,等等。 
PREG_OFFSET_CAPTURE查看PREG_SPLIT_OFFSET_CAPTURE的描述。4.3.0
PREG_SPLIT_NO_EMPTY这个标记告诉 preg_split() 进返回非空部分。 
PREG_SPLIT_DELIM_CAPTURE这个标记告诉 preg_split() 同时捕获括号表达式匹配到的内容。4.0.5
PREG_SPLIT_OFFSET_CAPTURE如果设置了这个标记,每次出现的匹配子串的偏移量也会被返回。注意,这会改变返回数组中的值, 每个元素都是由匹配子串作为第0个元素,它相对目标字符串的偏移量作为第1个元素的数组。这个 标记只能用于 preg_split()。4.3.0
PREG_NO_ERROR没有匹配错误时调用 preg_last_error() 返回。5.2.0
PREG_INTERNAL_ERROR如果有PCRE内部错误时调用 preg_last_error() 返回。5.2.0
PREG_BACKTRACK_LIMIT_ERROR如果调用回溯限制超出,调用preg_last_error()时返回。5.2.0
PREG_RECURSION_LIMIT_ERROR如果递归限制超出,调用preg_last_error()时返回。5.2.0
PREG_BAD_UTF8_ERROR如果最后一个错误时由于异常的utf-8数据(仅在运行在 UTF-8 模式正则表达式下可用)。 导致的,调用preg_last_error()返回。5.2.0
PREG_BAD_UTF8_OFFSET_ERROR如果偏移量与合法的urf-8代码不匹配(仅在运行在 UTF-8 模式正则表达式下可用)。 调用preg_last_error()返回。5.3.0
PCRE_VERSIONPCRE版本号和发布日期(比如: “7.0 18-Dec-2006“)。5.2.4

PHP字符串函数

字符串的连接

使用“.”运算符可以把两个或两个以上的字符串连接成一个字符串。

implode函数的使用

string implode(string glue,arrat array)

其中 glue 表示连接数组元素的字符,array表示需要连接的字符数组。

strlen函数的使用

string strlen(string string)

在PHP中,strlen函数可以用来获取字符串的长度。

字符串的去除

用于去除字符串首尾空白等特殊符号或者指定字符序列相关函数包括以下几个。

trim()函数

string trim(string str[, charlist])

该函数表示去除字符串str首尾的特殊字符,这个字符都保存在charlist 中, charlist 是可选参数,如果不设置,则charlist的默认值“ \t\n\r\0\x0B”。charlist的默认值所涉及的字符表示“空格 制表符 换行符 回车符 空字节符 垂直制表符”

rtrim()和ltrim()和trim()相似,只不过只去除左边或者右边的字符。

字符串的分割

字符串的分割通常按照一定的规则来进行,常用的字符串分割如下所述。

explode()函数

该函数使用字符串作为分割符,它的语法格式如下:

array explode(string separator,string string[,int limit])

该函数表示把字符串string用字符串separator分割,limit参数是可选参数,如果将limit设置为正数,怎返回的数组包括limit个元素,且最后一个元素会包含字符串string的剩余部分;如果将limit设置为负数,则返回的数组包含除最后limit个元素外的所有元素。

str_split()

str_split() 和 explode() 不同的是,str_split()是按照长度来分割的,它的语法格式如下:

arrat str_split(string string[, int length])

其中,length 是可选参数,默认值是1 如果设置了该参数,则其值不可小于1

字符串的检索

strpos()

strpos()用来定位字符串第一次出现的位置,并返回其下标值,它的语法格式是:

int strpos(string string,string needle [, int offset])

其中 needle 表示要定位的字符串,offset是可选参数,表示检索会从该字符串的第offset个字符处开始,如果该参数是负值,表示检索会从字符串尾部倒数offset位置开始。

strrpos()

该函数用来定位字符串最后一次出现的位置,并返回其下标值,它的语法格式如下:

int strrpos(string string,string needle[, int offset])

该函数的参数意义和strpos()相同,不同的是,strrpos()函数用于返回指定字符串最后出现的位置。

stripos()

stripos()函数的使用方法与strpos()函数相同,区别是stripos()函数不区分大小写。它的语法格式如下:

int stripos(string string,string needle[,int offset])

strtipos()

strripos()函数的使用方法与strrpos()函数相同,区别是strtipos()函数不区分大小写。

int strtipos(string string,string needle[, int offset])

strstr()

strstr() 函数用来查找指定字符串的首次出现位置,并返回字符串的一部分,它的语法格式如下:

string strstr(string string,string needle[, bool before_needle])

其中 string 和 needle 的意义与之前的检索函数相同。before_needle是可选参数,默认值为false, 表示返回needle在string中首次出现的位置之后的部分(包含needle), 如果将参数设置为true,则返回needle在string中之前的位置之前的部分(不包括needle)。

strrchr()

strrchar()有点类似于strstr()函数,区别在于 strtchar()函数是查找指定字符在字符串中最后一次出现的位置,并返回指定字符串及其之后的部分,它的语法格式如下:

string stttchar(string string,string needle)

stristr()

该函数和strstr()函数完全一致,区别是不区分大小写。

substr_count()函数

int substr_count(string string,string needle[,int offset[,int length]])

该函数表示字符串string中检索needle出现的次数,offset是可选参数,指定从字符串string的什么位置开始检索,length也是可选参数,指定最大检索长度。

字符串的截取

substr()

substr()函数可以用来截取字符串,它的语法格式如下:

string substr (string string,int start[,int length])

其中start表示从什么位置开始截取字符串,如果该参数是正数,则表示从字符串string的第start个函数开始返回字符串(包含start位置)。如果该参数是负数,则表示从字符串string的结尾处向前start个字符串开始返回的字符串

length是可选参数 表示截取的字符串的长度。

字符串的替换

substr_replace()

该函数可以把字符串的一部分替换成另一个字符串,并返回混合类型,它的语法格式如下

mixed substr_replace(mixed string,string replacement,int start[,int length])

其中string 表示要处理的字符串,replacement表示要插入的字符串,start表示要替换操作的开始位置,起始位置为0,如果参数为正数,则从start位置开始替换,如果该参数是负数,则从字符串string的倒数第start位置开始替换。

。。。。。。

str_replace()函数

str_replace() 函数以其他字符替换字符串中的一些字符(区分大小写)。

该函数必须遵循下列规则:

  • 如果搜索的字符串是数组,那么它将返回数组。
  • 如果搜索的字符串是数组,那么它将对数组中的每个元素进行查找和替换。
  • 如果同时需要对数组进行查找和替换,并且需要执行替换的元素少于查找到的元素的数量,那么多余元素将用空字符串进行替换
  • 如果查找的是数组,而替换的是字符串,那么替代字符串将对所有查找到的值起作用。

注释:该函数区分大小写。请使用 str_ireplace() 函数执行不区分大小写的搜索。

注释:该函数是二进制安全的。

strcmp() 函数比较两个字符串。

注释:strcmp() 函数是二进制安全的,且对大小写敏感。

提示:该函数与 strncmp() 函数类似,不同的是,通过 strncmp() 您可以指定每个字符串用于比较的字符数。

语法

strcmp(string1,string2)
参数描述
string1必需。规定要比较的第一个字符串。
string2必需。规定要比较的第二个字符串。

技术细节

返回值:本函数返回:0 – 如果两个字符串相等<0 – 如果 string1 小于 string2>0 – 如果 string1 大于 string2
PHP 版本:4+

strcasecmp不区分大小写,strcmp区分大小写

strnatcmp() 函数使用一种”自然”算法来比较两个字符串。

在自然算法中,数字 2 小于数字 10。在计算机排序中,10 小于 2,这是因为 10 中的第一个数字小于 2。

注释:该函数对大小写敏感。

语法

strnatcmp(string1,string2)
参数描述
string1必需。规定要比较的第一个字符串。
string2必需。规定要比较的第二个字符串。

技术细节

返回值:本函数返回:0 – 如果两个字符串相等<0 – 如果 string1 小于 string2>0 – 如果 string1 大于 string2
PHP 版本:4+

strncmp() 函数比较两个字符串。

注释:strncmp() 是二进制安全的,且对大小写敏感。

提示:该函数与 strcmp() 函数类似,不同的是,strcmp() 没有 length 参数。

语法

strncmp(string1,string2,length)
参数描述
string1必需。规定要比较的首个字符串。
string2必需。规定要比较的第二个字符串。
length必需。规定比较中所用的每个字符串的字符数。

技术细节

返回值:本函数返回:0 – 如果两个字符串相等<0 – 如果 string1 小于 string2>0 – 如果 string1 大于 string2
PHP 版本:4+

拖拽事件

HTML 的 drag & drop 使用了 DOM event model 以及从 mouse events 继承而来的 drag events 。一个典型的拖拽操作是这样的:用户选中一个可拖拽的(draggable)元素,并将其拖拽(鼠标不放开)到一个可放置的(droppable)元素,然后释放鼠标。

在操作期间,会触发一些事件类型,有一些事件类型可能会被多次触发(比如drag 和 dragover 事件类型)。

所有的 drag event types 有一个对应的 global event handler。每个拖拽事件类型和拖拽全局属性都有对应的描述文档。下面的表格提供了一个简短的事件类型描述,以及一个相关文档的链接。

事件On型事件处理程序触发时刻
dragondrag当拖拽元素或选中的文本时触发。
dragendondragend当拖拽操作结束时触发 (比如松开鼠标按键或敲“Esc”键). (见结束拖拽)
dragenterondragenter当拖拽元素或选中的文本到一个可释放目标时触发(见 指定释放目标)。
dragexitondragexit当元素变得不再是拖拽操作的选中目标时触发。
dragleaveondragleave当拖拽元素或选中的文本离开一个可释放目标时触发。
dragoverondragover当元素或选中的文本被拖到一个可释放目标上时触发(每100毫秒触发一次)。
dragstartondragstart当用户开始拖拽一个元素或选中的文本时触发(见开始拖拽操作)。
dropondrop当元素或选中的文本在可释放目标上被释放时触发(见执行释放)。

注意:当从操作系统向浏览器中拖拽文件时,不会触发 dragstart 和dragend 事件。

实验一计算机网络基础及命令

实验目的:

1、学会熟练查看计算机与网络相关的基本配置信息;

2、学会在局域网内共享资源

3、学会使用ipconfig查看网络基本信息;

4、学会ping命令简单用法

实验条件:单机(windows server 2000)和星型局域网

实验内容

一、查看记录网络相关信息

1、右击“我的电脑”/“属性”/“计算机标识”。记录:

计算机名称(627stupc051)工作组(WORKGROUP)

2、右击“网上邻居”/“属性”/右击“本地连接”/“属性”/…。记录:

网卡型号(Realtek PCIe GBE Family Controller)已装协议(TCP/IPv4)、(Qoss数据包计划程序)、(Microsoft 网络客户端)

IP地址(172.16.18.150)子网掩码(255.255.255.0)网关(172.16.18.1)DNS(202.102.192.68)

二、共享资源

1、右击“我的电脑”/“管理”/系统工具-“本地用户和组”/用户/双击Guest帐户,启用之。

2、右击“我的电脑”/“管理”/系统工具-“共享文件夹”/共享,查看已共享情况。

3、右击“我的电脑”/“资源管理器”/右击某一磁盘(或文件夹)/共享

设置其详细的共享属性参数(属性参数具体有  读取、读写、删除 等)

4、验证共享

自我验证及同学间的验证。

右击“我的电脑”/“资源管理器”,在地址栏内输入“\\计算机标识”,回车。

二、使用ipconfig查看记录网络相关信息;

“开始”/“运行”/输入“cmd”,回车。

输入ipconfig /all ,回车。

记录:

计算机名称(627stupc051)网卡型号(Realtek PCIe GBE Family Controller)MAC地址(00-E0-70-7D-D9-12)

IP地址(172.16.18.150)子网掩码(255.255.255.0)网关(172.16.18.1)DNS(202.102.192.68)

三、使用ping命令检查记录网络工作状况

1、“开始”/“运行”/输入“cmd”,回车。

输入“ping  /?” ,回车。

2、抄录命令参数及其各自的含义、功能。

命令参数有:(

-l size        发送缓冲区大小。、

-a             将地址解析成主机名。、

-4             强制使用 IPv4。、

-6             强制使用 IPv6。、

-S srcaddr     要使用的源地址。)

3、把下面三条命令填写完整,并叙述其功能。

1.  ping -t  www.baidu.com(  一直ping www.baidu.com 直到按ctrl+c结束  )

2.  ping -a www.baidu.com  (将地址解析成主机名)

3.  ping 127.0.0.1  ( ping 本地主机)

4、抄录一行表明网络通畅的屏幕信息( 

正在 Ping 127.0.0.1 具有 32 字节的数据:

来自 127.0.0.1 的回复: 字节=32 时间<1ms

来自 127.0.0.1 的回复: 字节=32 时间<1ms

来自 127.0.0.1 的回复: 字节=32 时间<1ms

来自 127.0.0.1 的回复: 字节=32 时间<1ms

127.0.0.1 的 Ping 统计信息:

    数据包: 已发送 = 4,已接收 = 4,丢失

往返行程的估计时间(以毫秒为单位):

最短 = 0ms,最长 = 0ms,平均 = 0ms )

一行表明网络不通的屏幕信息(

正在 Ping 127.0.0.1 具有 32 字节的数据:

来自 127.0.0.1 的回复: 字节=32 时间<1ms

来自 127.0.0.1 的回复: 字节=32 时间<1ms

来自 127.0.0.1 的回复: 字节=32 时间<1ms

来自 127.0.0.1 的回复: 字节=32 时间<1ms

127.0.0.1 的 Ping 统计信息:

    数据包: 已发送 = 4,已接收 = 4,丢失

往返行程的估计时间(以毫秒为单位):

    最短 = 0ms,最长 = 0ms,平均 = 0ms

思考与总结(自评)

我已学会熟练查看计算机与网络相关的基本配置信息(优秀);

我已学会在局域网内共享资源(优秀)

我已学会使用ipconfig查看网络基本信息(优秀)

我已学会ping命令简单用法(优秀)

常量和运算符

php 常量

使用define定义常量,该函数返回bool类型值。

<?php
	$str = define("LOCALHOST","http://localhost");
	echo $str;//布尔
	echo "<br />";
	echo LOCALHOST;
?>

使用const关键字定义常量

<?php
	const LOCALHOST = "http://localhost:80";
	echo LOCALHOST;
?>

使用常量

常量值得使用方式有两种,一种方式是运用常量直接获取;另一种方式是用constant()函数获取。两种方式的效果相同,但是constant()函数可以获取动态常量,使用起来也更为灵活,方便。constant()函数的语法格式如下:

mixed constant (string name)

其中name为需要获取或存储的常量名称。若获取或存储常量成功,则返回常量值,否则显示错误信息。

预定义常量

1、__FILE__  默认常量,是指PHP程序文件名及路径;

    2、__LINE__ 默认常量,是指PHP程序的行数;

    3、__CLASS__: 类的名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该类被定义时的名字(区分大小写)。在 PHP 4 中该值总是小写字母的。

    4、__METHOD__: 类的方法名(PHP 5.0.0 新加)。返回该方法被定义时的名字(区分大小写)。

    5、PHP_VERSION 内建常量,是指PHP程序的版本;

    6、PHP_OS 内建常量,是指PHP解析器的操作系统的名称;

    7、TRUE 是指真值(true);

    8、FALSE 是指假指(false);

    9、NULL 是指空值(null);

    10、E_ERROR 是指最近的错误之处;

    11、E_WARNING 是指最近的警告之处;

    12、E_PARSE 是指解析语法有潜在的问题之处;

    13、E_NOTICE 是指发生不同寻常的提示,但不一定是错误处;

    注意:“__FILE__” “_LINE__ ” “__CLASS__” “__METHOD__” 中的“__”是指两个下划线,不是指一个下划线。

运算符

运算符名称描述实例结果
x + yx 和 y 的和2 + 24
x – yx 和 y 的差5 – 23
x * yx 和 y 的积5 * 210
x / yx 和 y 的商15 / 53
x % y模(除法的余数)x 除以 y 的余数5 % 2
10 % 8
10 % 2
1
2
0
– x取反x 取反<?php $x =2; echo -$x; ?>-2
a . b并置连接两个字符串“Hi” . “Ha”HiHa

赋值运算符

运算符等同于描述
x = yx = y左操作数被设置为右侧表达式的值
x += yx = x + y
x -= yx = x – y
x *= yx = x * y
x /= yx = x / y
x %= yx = x % y模(除法的余数)
a .= ba = a . b连接两个字符串

PHP 递增/递减运算符

运算符名称描述
++ x预递增x 加 1,然后返回 x
x ++后递增返回 x,然后 x 加 1
— x预递减x 减 1,然后返回 x
x —后递减返回 x,然后 x 减 1

PHP 比较运算符

比较操作符可以让您比较两个值:

运算符名称描述实例
x == y等于如果 x 等于 y,则返回 true5==8 返回 false
x === y绝对等于如果 x 等于 y,且它们类型相同,则返回 true5===”5″ 返回 false
x != y不等于如果 x 不等于 y,则返回 true5!=8 返回 true
x <> y不等于如果 x 不等于 y,则返回 true5<>8 返回 true
x !== y绝对不等于如果 x 不等于 y,或它们类型不相同,则返回 true5!==”5″ 返回 true
x > y大于如果 x 大于 y,则返回 true5>8 返回 false
x < y小于如果 x 小于 y,则返回 true5<8 返回 true
x >= y大于等于如果 x 大于或者等于 y,则返回 true5>=8 返回 false
x <= y小于等于如果 x 小于或者等于 y,则返回 true5<=8 返回 true
$a??$b??$c空合并符返回从左到右第一个不为null的变量null??null??3返回3
$a<=>$b组合比较符若a<b则返回-1 若a等于b则返回0 若a>b则返回11<=>2 返回-1
<?php
	echo null??null??3;//输入3
	echo "<br />";
	var_dump(null??null??null);//输入null
?>

PHP 逻辑运算符

运算符名称描述实例
x and y如果 x 和 y 都为 true,则返回 truex=6
y=3 
(x < 10 and y > 1) 返回 true
x or y如果 x 和 y 至少有一个为 true,则返回 truex=6
y=3 
(x==6 or y==5) 返回 true
x xor y异或如果 x 和 y 有且仅有一个为 true,则返回 truex=6
y=3 
(x==6 xor y==3) 返回 false
x && y如果 x 和 y 都为 true,则返回 truex=6
y=3
(x < 10 && y > 1) 返回 true
x || y如果 x 和 y 至少有一个为 true,则返回 truex=6
y=3
(x==5 || y==5) 返回 false
! x如果 x 不为 true,则返回 truex=6
y=3
!(x==y) 返回 true

PHP 数组运算符

运算符名称描述
x + y集合x 和 y 的集合
x == y相等如果 x 和 y 具有相同的键/值对,则返回 true
x === y恒等如果 x 和 y 具有相同的键/值对,且顺序相同类型相同,则返回 true
x != y不相等如果 x 不等于 y,则返回 true
x <> y不相等如果 x 不等于 y,则返回 true
x !== y不恒等如果 x 不等于 y,则返回 true

运算符优先级

下表按照优先级从高到低列出了运算符。同一行中的运算符具有相同优先级,此时它们的结合方向决定求值顺序。

说明:左 = 从左到右,右 = 从右到左。

结合方向运算符附加信息
clone newclone 和 new
[array()
++ — ~ (int) (float) (string) (array) (object) (bool) @类型和递增/递减
instanceof类型
!逻辑运算符
* / %算术运算符
+ – .算术运算符和字符串运算符
<< >>位运算符
== != === !== <>比较运算符
&位运算符和引用
^位运算符
|位运算符
&&逻辑运算符
||逻辑运算符
? :三元运算符
= += -= *= /= .= %= &= |= ^= <<= >>= =>赋值运算符
and逻辑运算符
xor逻辑运算符
or逻辑运算符
,多处用到

PHP其他关键字

在php中,eixt()函数和dir()函数的作用和用法完全相同。这两个函数可以设置参数。如果参数为一个字符串,则函数会在终止脚本的运行前输入字符串;如果参数为一个整数,则这个值会被用作退出状态。在参数值为整数时,取值范围为0-254,0表示成功结束,255表示退出状态,PHP保留,不会被使用,退出状态通常用在PHP命令模式中。

PHP函数

语法

<?php
function functionName()
{
    // 要执行的代码
}
?>

hello php

启动服务器

打开hbuilder

注意路径要是xampp的安装路径下的htdocs目录里才可以被访问

打开hubilder的设置-》运行配置

设置chrome浏览器地址和外部web服务器调用Url地址

在index.html中输入测试字符,尝试运行

php的写法

  • <?php ….?>
  • <script type=”text/php”> … </script>
  • <? … ?>
  • <% … %>

创建php文件

写入代码

<?php
	echo "hello php";
?>

运行

PHP注释

<?php
	// 单行注释
	//echo "hello php";
	# echo "hello php"; shell 风格注释
	// 多行注释
	/*
	echo "hello php";
	*/
   //快捷键 ctrl + /
?>

数据类型

PHP 的 数据类型

String(字符串), Integer(整型), Float(浮点型), Boolean(布尔型), Array(数组), Object(对象), NULL(空值)。

php的字符串

单引号:直接用单引号引起来,所有内容都不会被解析。

双引号:直接用双引号引起来,包含的变量会被解析。

Heredoc结构

<<< 操作符:操作符后连接标识符(开始标识符)和换行符,标识符可以自定义,一般为EOD、EOF、EOT 等。

输入要引用的字符串,字符串可以正常解析变量,但不能解析函数。

最后下新的一行顶格写标识符(结束标识符),并连接分号结束,这一行里不允许有其他内容。

注意:新的一行,顶格写,且后面不允许有其他内容

Nowdoc结构

结构与Heredoc结构类似,但其不同的是,Nowdoc结构类似于单引号引起来的字符串,所以Nowdoc结构中的所有内容都不进行解析,通常用于嵌入php代码或者其他大段包含很多特殊字符串的文本,在Nowdoc中这些内容都不需要转义,他的使用方法和 Heredoc结构也很类似,唯一不同的是开始标识符需要使用单引号引起来。

和 heredoc 的区别是开始标识符需要用时单引号引起来,且内容不会被解析

php的转义字符

PHP的整形

<?php
$a = 1234; // 十进制数
$a = 0123; // 八进制数 (等于十进制 83)
$a = 0x1A; // 十六进制数 (等于十进制 26)
$a = 0b11111111; // 二进制数字 (等于十进制 255)
$a = 1_234_567; // 整型数值 (PHP 7.4.0 以后)
?>

来自官方文档

PHP的复合数据类型

复合数据类型可以用于将多个相同类型的项聚集起来,表示为一个实体。这包括数据(arrary)和对象(object)

//  php定义数据的方法  
$array = array(
    "foo" => "bar",
    "bar" => "foo",
);

// 自 PHP 5.4 起
$array = [
    "foo" => "bar",
    "bar" => "foo",
];

php 特殊类型

NULL: 空值,表示变量没有数值,是一种特殊的值

resource: 资源,也叫作句柄,是一种特殊的变量,能够保存一个到外部资源的引用,通常用专门的函数来定义和使用。

fileopen函数返回资源类型

php 数据类型检测

  • isset()://变量是否已经声明 
  • empty()://变量是否为空 
  • defined()://常量是否已经定义 define() 
  • array_key_exists(mixed key, array search)://检查给定的键名或索引是否存在于数组中
  • is_numeric ( mixed var )://检测变量是 否为数字或数字字符串 
  • is_bool():// 检测变量是否是布尔型 
  • is_float():// 检测变量是否是浮点型 和is_double,is_real()都一样的用法 
  • is_int(): // 检测变量是否是整数is_integer() 一样的 用法 
  • is_string():// 检测变量是否是字符串 
  • is_object():// 检测变量是否是一个对象 
  • is_array():// 检测变量是否是数组 
  • is_null():// 检测变量是否为 NULL 值是否是NULL大小写敏感
  • var_dump()://直接打印数据类型[常用]
函数名作用返回值
is_array(mixed $var)判断变量是否为数组如果参数 $var 为数组则返回 TRUE,否则返回 FALSE
is_bool(mixed $var) 判断变量是否为布尔类型如果参数 $var 为布尔类型的值则返回 TRUE,否则返回 FALSE
is_float(mixed $var) 判断变量是否为浮点数如果参数 $var 为浮点数则返回 TRUE,否则返回 FALSE
is_int(mixed $var)判断变量是否为整数类型如果参数 $var 为整数类型则返回 TRUE,否则返回 FALSE
is_null(mixed $var)判断变量是否为 NULL 如果参数 $var 未被定义,或者被设置为 NULL 则返回 TRUE,否则返回 FALSE
is_numeric(mixed $var)判断变量是否为数字或者数字字符串如果参数 $var 为数字或者数字字符串则返回 TRUE,否则返回 FALSE
is_object(mixed $var)判断变量是否为一个对象如果参数 $var 为一个对象则返回 TRUE,否则返回 FALSE
is_scalar(mixed $var)判断变量是否为一个标量(标量即最小的变量单位,只包括
integer、float、string 或 bool 类型的变量,而 array、
object 和 resource 则不是标量)
如果参数 $var 为标量则返回 TRUE,否则返回 FALSE
is_string(mixed $var) 判断变量是否为字符串如果参数 $var 为字符串则返回 TRUE,否则返回 FALSE
isset(mixed $var) 判断变量是否已经定义如果参数 $var 已经存在则返回 TRUE,否则返回 FALSE。
注意:被设置为 NULL 的变量在使用 isset() 时将返回 FALSE

PHP 类型转换

第一种方式:允许的强制转换有:

  • (int),(integer)            – 转换成整型
  • (bool),(boolean)           – 转换成布尔型
  • (float),(double),(real)    – 转换成浮点型
  • (string)                  – 转换成字符串
  • (array)                    – 转换成数组
  • (object)                   – 转换成对象

第二种转换方式:  intval()  floatval()  strval()

<?php   
$str="123.9abc";   
$int=intval($str);     //转换后数值:123   
$float=floatval($str); //转换后数值:123.9   
$str=strval($float);   //转换后字符串:"123.9"    
?>  

第三种方式:还可以用settype ( mixed var, string type )进行强制转换.

<?php   
$num4=12.8;   
$flg=settype($num4,"int");   
var_dump($flg);  //输出bool(true)   
var_dump($num4); //输出int(12)   
?>

非0=真

0=假

DOM

DOM:document object model

对网页进行增删改查的操作。

按ID精确查找一个元素

var element = document.getElementById("ID");
//效率非常高

强调:只能用在document上

何时使用:只用于精确查找一个元素

问题:不是所有元素都有ID

按标签查找

var element = parent.getElementByTagName("tag");
//查抄指定parent节点下的所有标签为tag的子代节点

强调:

  • 可以用在任意父元素上
  • 不仅查直接子节点,还查找所有子代节点
  • 返回一个动态几个
  • 即使值找到一个元素,也返回集合
  • 必须用[n]取出唯一元素

问题:不但找直接,而且找所有子代。

通过name属性查找

var element = document.getElementByName("name属性值");

可以返回DOM树中具有指定name属性值得所有子元素集合。

通过class查找

var element = parent.getElementByClassName("class");
//查找父元素下指定class属性的元素
//有兼容性问题:IE9+

通过css选择器查找

var element = parent.querySelector("selector");
//只找一个元素

强调:selector支持一切CSS中的选择器

强调:如果选择器匹配的有多个,只返回第一个

var element = parent.querySelectAll("selector");
//找多个

强调:selector API 返回的是非动态集合。

数组转字符串

String(arr)

将arr中每个元素转为字符串,用逗号分隔

固定套路:对数组拍照,用于鉴别数组是否被修改过

arr.joni(“连接符”)

将arr中每个元素转为字符串,用自定义的连接符(可以是空字符串)分隔。

arr.slice(start,end)

返回从start(包含)下标开始到end(不包含)下标元素的临时数组 (含头不含尾)

arr.splice(start,n,参数1,参数1….)

删除从start后面的n个元素,然后将参数依次插入发哦start后面,删除的个数和插入的个数不必一致

arr.reverse()

颠倒数组

arr.sort()

排序数组

算法训练 字串统计

资源限制时间限制:1.0s   内存限制:512.0MB

问题描述  给定一个长度为n的字符串S,还有一个数字L,统计长度大于等于L的出现次数最多的子串(不同的出现可以相交),如果有多个,输出最长的,如果仍然有多个,输出第一次出现最早的。

输入格式  第一行一个数字L。
  第二行是字符串S。
  L大于0,且不超过S的长度。

输出格式  一行,题目要求的字符串。

  输入样例1:
  4
  bbaabbaaaaa

  输出样例1:
  bbaa

  输入样例2:
  2
  bbaabbaaaaa

  输出样例2:
  aa

数据规模和约定  n<=60
  S中所有字符都是小写英文字母。

提示  枚举所有可能的子串,统计出现次数,找出符合条件的那个

满分代码

#include <bits/stdc++.h>
using namespace std;
int length(const char * str)
{
	int index = 0;
	while(1)
	{
		if(str[index]==0)return index;
		index++;
	}
}
//查找有多少个子字符串 
int func(string str,string substr)
{
	int sum=0,index=0;
	//初始位置 
	index = str.find(substr,index);
	while(index!=string::npos)
	{
		sum++;
		//判断去留 
		if(str.find(substr,index+1)!=string::npos)
		{
			index = str.find(substr,index+1);
		}else{
			break;
		}
	}
	return sum;
}
int main()
{
	//cout<<func("avx","a");
	//return 0;
	string str;
	int L=0;
	int max=0;
	string maxstr="";
	cin>>L>>str;
	//如果超出 
	if(L>str.length())return 0;
	//增加L 
	for(;L<=str.length();L++)
	{
		//遍历出子字符串 
		for(int i=0;i<str.length()-L+1;i++)
		{
			string substr = str.substr(i,L);
			//cout<<substr<<endl;
			int k = func(str,substr);
			if(k>max){
				maxstr = substr;
				max = k; 
			}else if(k==max)
			{
				if(substr.length()>maxstr.length())
				{
					maxstr = substr;
				}
			}
		}
	}
	
	cout<<maxstr;
	return 0;
}