首页 > 编程语言 >Php语法知识点小结

Php语法知识点小结

时间:2022-08-22 15:35:13浏览次数:114  
标签:知识点 缓存 函数 小结 session print Php strlen php

参考 https://www.cnblogs.com/zyf-zhaoyafei/p/4828358.html#tree19

isset() 、empty()与is_null的区别

1、当变量未定义时,is_null() 和“参数本身”是不允许作为参数判断的,会报Notice警告错误;

2、empty , isset首先都会检查变量是否存在,然后对变量值进行检测。而is_null 和 “参数本身”只是直接检查变量值,是否为null,因此如果变量未定义就会出现错误!

3、isset():仅当null和未定义,返回false;

4、empty():""、0、"0"、NULL、FALSE、array(),未定义,均返回true;

5、is_null():仅判断是否为null,未定义报警告;

6、变量本身作为参数,与empty()一致,但接受未定义变量时,报警告;

session与cookie的联系和区别(运行机制),session共享问题解决方案

区别与联系:

使用session_start()调用session,服务器端在生成session文件的同时生成session ID哈希值和默认值为PHPSESSID的session name,并向客户端发送变量为PHPSESSID(session name)(默认)值为一个128位的哈希值。服务器端将通过该cookie与客户端进行交互,session变量的值经php内部系列化后保存在服务器 机器上的文本文件中,和客户端的变量名默认情况下为PHPSESSID的coolie进行对应交互,即服务器自动发送了http 头:header(‘Set-Cookie: session_name()=session_id(); path=/’);即setcookie(session_name(),session_id());当从该页跳转到的新页面并调用 session_start()后,PHP将检查与给定ID相关联的服务器端存贮的session数据,如果没找到则新建一个数据集。

共享方案:

1:使用数据库保存session, 使用数据库来保存session,就算服务器宕机了也没事,session照样在。

问题:程序需要定制;每次请求都进行数据库读写开销不小,另外数据库是一个单点,可以做数据库的hash来解 决这个问题。

2:使用 memcached来保存session, 这种方式跟数据库类似,内存存取性能比数据库好很多。

问题:程序需要定制,增加 了工作量;存入memcached中的数据都需要序列化,效率较低,断电或者重启电脑容易丢失数据;

3: 通过加密的cookie,在A服务器上登录,在用户的浏览器上添加加密的cookie,当用户访问B服务器时,检查有无Session,如果没有,就检验 Cookie是否有效,Cookie有效的话就在B服务器上重建session。简单,高效, 服务器的压力减小了,因为session数据不存在服务器磁盘上。根本就不会出现session读取不到的问题。

问题:网络请求占用很多。每次请求时,客户端都要通过cookie发送session数据给服务器,session中数据不能太多,浏览器对cookie 的大

小存在限制。不适合高访问量的情况,因为高访问量的情况下。

常用的正则表达式

正则表达式一定要会, 通过正则表达式能很容易的看出一个人的基础

匹配中文字符的正则表达式: [\u4e00-\u9fa5]
匹配双字节字符(包括汉字在内):[^\x00-\xff]
匹配空行的正则表达式:\n[\s| ]\r
匹配HTML标记的正则表达式:/<(.
)>.</\1>|<(.) />/
匹配首尾空格的正则表达式:(^\s)|(\s\() 匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)* 匹配网址URL的正则表达式:^[a-zA-z]+://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?\)
匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):[1][a-zA-Z0-9_]{4,15}$
匹配国内电话号码:(\d{3}-|\d{4}-)?(\d{8}|\d{7})?
匹配腾讯QQ号:[2][1-9][0-9]$

strlen()与mb_strlen的作用与区别

在PHP中,strlen与mb_strlen是求字符串长度的函数

PHP内置的字符串长度函数strlen无法正确处理中文字符串,它得到的只是字符串所占的字节数。对于GB2312的中文编码,strlen得到的值是汉字个数的2倍,而对于UTF-8编码的中文,就是3倍(在 UTF-8编码下,一个汉字占3个字节)。

采用mb_strlen函数可以较好地解决这个问题。mb_strlen的用法和strlen类似,只不过它有第二个可选参数用于指定字符编码。例如得到UTF-8的字符串

标签:知识点,缓存,函数,小结,session,print,Php,strlen,php
From: https://www.cnblogs.com/success-zh/p/16612933.html

相关文章

  • PHP认证 MP4文件 播放
    1、问题直接放在WEB目录下,文件不安全,没有认证可以直接访问;PHP认证通过后返回WEB目录下的真实文件地址,不安全,访问一次后后续可以直接访问;用PHP读MP4文件然后再输出:加载......
  • python-sys模块所有知识点
    #-*-coding:utf-8-*-#Python中sys模块:该模块提供对解释器使用或维护的一些变量的访问,以及与解释器强烈交互的函数#sys.argv#命令行参数List,第一个元素是程序本身路......
  • WebServer知识点梳理
    epollET模式(边缘触发)mysql(业务部分的内容)连接池(数据库)线程池日志定时器Reactor模式http大端序小端序互转hton读写缓冲区流程主线程监听连接主线程让epol......
  • 14.PHP伪协议利用
    一.伪协议介绍PHP支持以下几种协议:file://-访问本地文件系统http://-访问HTTP(s)网址ftp://-访问各个输入/输出流(I/Ostreams)zlib://-压缩流data://-数......
  • Mysql 面试知识点-(理解即可)
    1、关系型和非关系型数据库的区别?关系型数据库的优点-容易理解,因为它采用了关系模型来组织数据。可以保持数据的一致性。数据更新的开销比较小。支持复杂查询(带wher......
  • Mysql 琐碎知识点集
    UNION的使用方法UNION操作符用于合并两个或多个SELECT语句的结果集。但是请注意,UNION内部的SELECT语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每......
  • php上传多个图片文件
    前端文件upload1.html<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metana......
  • C和C++的一处小知识点(小坑)
    在C语言中voidmain(){constinti=0;int*j=(int*)&i;*j=1;printf("%d,%d",i,*j);system("pause");}结果输出为1,1在C++......
  • nginx与php-fpm通信协议 和 优化
    CGI:通信网关协议CGI协议:动态语言的代码文件需要对应的语言解释器才能被服务器识别,CGI协议就是用来使得解释器与服务器之间互相通信请求链路:1、客户端输入ur2、解析......
  • php合并数组几种方法
    几种合并数组方法如下:使用+号合并数组结果:键名相同时,前边的键值覆盖后边的键值array_merge()方法:键名相同时,后边的键值覆盖前边的键值array_merge_recursive()......