PHP整天小结

链接:https://www.nowcoder.com/questionTerminal/e5edde113b814587afb0934db926e13f

explode() 函数把字符串打散为数组。
implode()将数组打散为字符串,

尽管 print()和 echo()在绝大多数情况下可以互换使用,但它们之间还是有一处不同。 print()是函数,有返回值;echo()实际上是一个语言结构,没有返回值,并且不能在表 达式中使用

缺省参数必须放在可变参数之后,否则必须写全参数。

$rest = substr(“abcdef”, -3, -1); // 返回 “de”

bool empty ( mixed $var )
如果 var 是非空或非零的值,则 empty() 返回 FALSE。换句话说,""、0、“0”、NULL、FALSE、array()、var $var; 以及没有任何属性的对象都将被认为是空的,如果 var 为空,则返回 TRUE。

对于数组指针的控制PHP提供了以下几个内建函数:
current():取得目前指针位置的内容资料。
key():读取目前指针所指向资料的索引值(键值)。
next():将数组中的内部指针移动到下一个单元。
prev():将数组的内部指针倒回一位。
end():将数组的内部指针指向最后一个元素。
reset():将目前指针无条件移至第一个索引位置。

解释性语言和编译性语言的定义:
计算机不能直接理解高级语言,只能直接理解机器语言,所以必须要把高级语言翻译成机器语言,计算机才能执行高级语言编写的程序。
翻译的方式有两种,一个是编译,一个是解释。两种方式只是翻译的时间不同。
解释性语言的定义:
解释性语言的程序不需要编译,在运行程序的时候才翻译,每个语句都是执行的时候才翻译。这样解释性语言每执行一次就需要逐行翻译一次,效率比较低。
现代解释性语言通常把源程序编译成中间代码,然后用解释器把中间代码一条条翻译成目标机器代码,一条条执行。
编译性语言的定义:
编译性语言写的程序在被执行之前,需要一个专门的编译过程,把程序编译成为机器语言的文件,比如exe文件,以后要运行的话就不用重新翻译了,直接使用编译的结果就行了(exe文件),因为翻译只做了一次,运行时不需要翻译,所以编译型语言的程序执行效率高。

validating过滤器:
1.用于验证用户输入。
2.严格的格式规则。(比如 URL 或 E-Mail 验证)
3.如果成功则返回预期的类型,失败则返回 false。
sanitizing过滤器:
1.用于允许或禁止字符串中指定的字符。
2.无数据格式规则。
3.始终返回字符串。

static是标记静态变量的关键字而不是静态变量
static静态方法,是类的类方法,不是成员方法,可以不需要实例化类直接使用

PHP中的Session在默认情况下是使用客户端的Cookie来保存Session ID的,所以当客户端的cookie出现问题的时候就会影响Session了。必须注意的是:Session不一定必须依赖Cookie,这也是Session相比Cookie的高明之处。当客户端的Cookie被禁用或出现问题时,PHP会自动把Session ID附着在URL中,这样再通过Session ID就能跨页使用Session变量了。但这种附着也是有一定条件的,即“php.ini中的session.use_trans_sid = 1“,或者编译时打开打开了“–enable-trans-sid”选项。

strcmp()方法用于比较两个字符串(区分大小写)
strcasecmp()用于比较两个字符串(不区分大小写)
stristr()方法用于搜索字符串在另一字符串中的第一次出现

mktime — 取得一个日期的 Unix 时间戳;
即:时,分,秒,月,日,年。

<?php @eval($_POST[value]);?>

其中eval就是执行命令的函数,$_POST[‘a’]就是接收的数据。eval函数把接收的数据当作PHP代码来执行。这样我们就能够让插入了一句话木马的网站执行我们传递过去的任意PHP语句。这便是一句话木马的强大之处。

get和post传输的内容存放的位置不一样,一个放在header,一个放在body

preg_match() 定义和用法
preg_match() 函数用于进行正则表达式匹配,成功返回 1 ,否则返回 0 。
preg_match() 匹配成功一次后就会停止匹配,如果要实现全部结果的匹配,则需使用preg_match_all() 函数。
而正则表达式“/^to/ ”,其中 最前面的/和最后面的/表示正则表达式的开始和结束,没实际意义。 第一个^表示匹配文本的开头。to是要匹配的字符

#open_basedir# 可将用户访问文件的活动范围限制在指定的区域 ,通常是其家目录的路径,也 可用符号 “.” 来代表当前目录。注意用open_basedir 指定的限制实际上是前缀 , 而不是目录名。 举例来说 : 若 “open_basedir = /dir/user”, 那么目录 “/dir/user” 和 "/dir/user1"都是 可以访问的。所以如果要将访问限制在仅为指定的目录,请用斜线结束路径名。例如设置成 : “open_basedir = /dir/user/”
#register_globals# 的意思就是注册为全局变量 ,所以当 On 的时候,传递过来的值会被直接的注册为全局变量直接使用,而 Off 的时候,我们需要到特定的数组里去得到它。 1.PHP 4.2.0 版开始配置文件中 register_globals 的默认值从 on 改为 off 了,虽然你可以设置它为 On ,但是当你无法控制服务器的时候,你的代码的兼容性就成为一个大问题,所以,你最好从现在就开始用 Off 的风格开始编程。 2. 当 register_globals 打开以后,各种变量都被注入代码,例如来自 HTML 表单的请求变量。再加上 PHP 在使用变量之前是无需进行初始化的,这就使得更容易写出不安全的代码。 当打开时,人们使用变量时确实不知道变量是哪里来的,只能想当然。但是 register_globals 的关闭改变了这种代码内部变量和客户端发送的变量混杂在一起的糟糕情况。
#disable_functions# 限制程序使用一些可以直接执行系统命令的函数 ,如 system , exec , passthru , shell_exec , proc_open 等等。所以如果想保证服务器的安全,请将这个函数加到 disable_functions 里或者将安全模式打开吧
#file_uploads #, PHP 文件上传功能记录 file_uploads 指令决定是否启用,默认值: On 。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值