【PHP】入门知识
基础知识
八种原始数据类型:
四种标量类型:boolean、integer、float、string 两种复合类型:array、object 两种特殊类型:resource、null var_dump($var):获取$var变量的类型 memory_get_usage():获取当前PHP消耗的内存 八进制数字前加上0,十六进制数字前加上0x,打印时会自动转为十进制 当双引号中包含变量时,变量会与双引号中的内容连接在一起 当单引号中包含变量时,变量会被当做字符串输出 当字符串长度过长时,可以使用Heredoc结构形式:
$string1 = <<<标识符 xxxxxxxxxxxxx字符串 标识符; error_reporting(0); //禁止显示PHP警告提示 unset($var):函数用于销毁给定的变量 bool define(string $constant_name, mixed $value[, $case_sensitive = true]):定义常量
第一个参数“constant_name”为必选参数,常量名称,即标志符,常量的命名规则与变量的一致,但是要注意哦,它可不带美元符号哦。 二个参数“value”为必选参数,它是常量的值。 第三个参数“case_sensitive”为可选参数,指定是否大小写敏感,设定为true表示不敏感,一般不指定第三个参数的情况下,默认第三个参数的值为false。 constant(string constant_name)函数:它和直接使用常量名输出的效果是一样的,但函数可以动态的输出不同的常量,在使用上要灵活、方便, 错误控制运算符“@”:对于一些可能会在运行过程中出错的表达式时,我们不希望出错的时候给客户显示错误信息,这样对用户不友好。于是,可以将@放置在一个PHP表达式之前,该表达式可能产生的任何错误信息都被忽略掉.需要注意的是:错误控制前缀“@”不会屏蔽解析错误的信息,不能把它放在函数或类的定义之前,也不能用于条件结构例如if和foreach等 foreach(数组 as 值):只取值,不取下标 foreach(数组 as 下标 =>): 同时取下标和值 print_r($farr):可以输出数组键以及对应的值 __construct():定义一个构造函数,具有构造函数的类,会在每次对象创建的时候调用该函数,因此常用来在对象创建的时候进行一些初始化工作.如果构造函数定义成了私有方法,则不允许直接实例化对象了,这时候一般通过静态方法进行实例化,在设计模式中会经常使用这样的方法来控制对象的创建,比如单例模式只允许有一个全局唯一的对象 __destruct()进行定义,析构函数指的是当某个对象的所有引用被删除,或者对象被显式的销毁时会执行的函数 静态属性与方法可以在不实例化类的情况下调用,直接使用类名::方法名的方式进行调用。静态属性不允许对象使用->操作符调用。 属性的重载通过__set,__get,__isset,__unset来分别实现对不存在属性的赋值、读取、判断属性是否设置、销毁属性 __call():方法的重载通过__call来实现,当调用不存在的方法的时候,将会转为参数调用__call方法,当调用不存在的静态方法时会使用__callStatic重载 clone:对象复制,在一些特殊情况下,可以通过关键字clone来复制一个对象,这时__clone方法会被调用,通过这个魔术方法来设置属性的值 serialize()对象序列化,可以通过serialize方法将对象序列化为字符串,用于存储或者传递数据,然后在需要的时候通过unserialize将字符串反序列化成对象进行使用。 str_replace($find,$replace,$string):对字符串string里的find值替换为replace值
系统常量
_FILE_ :php程序文件名。它可以帮助我们获取当前文件在服务器的物理位置。 _LINE_ :PHP程序文件行数。它可以告诉我们,当前代码在第几行。 PHP_VERSION:当前解析器的版本号。它可以告诉我们当前PHP解析器的版本号,我们可以提前知道我们的PHP代码是否可被该PHP解析器解析。 PHP_OS:执行当前PHP版本的操作系统名称。它可以告诉我们服务器所用的操作系统名称,我们可以根据该操作系统优化我们的代码。
正则表达式
preg_match():用于执行一个正则匹配,常用来判断一类字符模式是否存在 \ 一般用于转义字符 ^ 断言目标的开始位置(或在多行模式下是行首) $ 断言目标的结束位置(或在多行模式下是行尾) . 匹配除换行符外的任何字符(默认) [ 开始字符类定义 ] 结束字符类定义 | 开始一个可选分支 ( 子组的开始标记 ) 子组的结束标记 ? 作为量词,表示 0 次或 1 次匹配。位于量词后面用于改变量词的贪婪特性。 (查阅量词) * 量词,0 次或多次匹配 + 量词,1 次或多次匹配 { 自定义量词开始标记 } 自定义量词结束标记 \s匹配任意的空白符,包括空格,制表符,换行符。 [^\s]代表非空白符。 [^\s]+表示一次或多次匹配非空白符。 \d匹配数字 \w匹配字母或数字或下划线 \s匹配任意的空白符,包括空格、制表符、换行符 当使用+之后将会变的贪婪,它将匹配尽可能多的字符,但使用问号?字符时,它将尽可能少的匹配字符,既是懒惰模式。
会话控制
ob_start():打开缓冲区PHP代码的数据块和echo()输出都会进入缓冲区而不会立刻输出 ob_get_contents():获得缓冲区的内容 setcookie():函数进行Cookie的设置.setcookie具有7个可选参数,我们常用到的为前5个:name( Cookie名)可以通过$_COOKIE[‘name’] 进行访问;value(Cookie的值);expire(过期时间)Unix时间戳格式,默认为0,表示浏览器关闭即失效;path(有效路径)如果路径设置为’/‘,则整个网站都有效;domain(有效域)默认整个域名都有效,如果设置了’www.imooc.com’, 则只在www子域中有效 setrawcookie():跟setcookie基本一样,唯一的不同就是value值不会自动的进行urlencode,因此在需要的时候要手动的进行urlencode。 $_COOKIE:任何从浏览器发回的Cookie,PHP都会自动的将他存储在$_COOKIE的全局变量之中,因此我们可以通过$_COOKIE[‘key’]的形式来读取某个Cookie值。 ob_clean():清空缓冲区 header():1.跳转页面2. 声明content-type3. 返回response状态码4. 在某个时间后执行跳转5. 控制浏览器缓存6. .执行http验证7. 执行下载操作 nl2br():函数在字符串中的每个新行(\n)之前插入 HTML 换行符( 或 ) setcookie(‘test’, ‘’, time()-1):将cookie的过期时间设置到当前时间之前,则该cookie会自动失效,也就达到了删除cookie的目的 session_start() :会创建新会话或者重用现有会话。 如果通过 GET 或者 POST 方式,或者使用 cookie 提交了会话 ID, 则会重用现有会话。 $_SESSION[‘test’]:设置一个session。session会自动的对要设置的值进行encode与decode,因此session可以支持任意数据类型,包括数据与对象等。 session_id():显示当前的sessionId unset($_SESSION[‘test’]):销毁一个session.如果要删除所有的session,可以使用session_destroy函数销毁当前session,session_destroy()会删除所有数据,但是session_id仍然存在。session_destroy()并不会立即的销毁全局变量$_SESSION中的值,只有当下次再访问的时候,$_SESSION才为空,因此如果需要立即销毁$_SESSION,可以使用unset函数。如果需要同时销毁cookie中的session_id,通常在用户退出的时候可能会用到,则还需要显式的调用setcookie方法删除session_id的cookie值。 $str = base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, md5($secureKey), $str, MCRYPT_MODE_ECB)):对序列化后的用户信息$str使用密钥$secureKey进行加密 $str = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, md5($secureKey), base64_decode($str), MCRYPT_MODE_ECB):对加密后的秘文进行解密,得到序列化后的对象
文件系统
file_get_contents(‘./test.txt’),可以将整个文件全部读取到一个字符串中,也可以通过参数控制读取内容的开始点以及长度$content = file_get_contents(‘./test.txt’, null, null, 100, 500); fopen(“filepath”, “r/w”):打开文件路径问filepath的文件,以r-读,w-写方式打开 fclose($fileResource):关闭文件资源变量 feof($fileResource):判断是否时最后一行 fgets($filr_handle):读取一行文本 freads($file, length):可以读取指定长度的字符串 fwrite($file,‘test’):向文件中写入’test’ file_exists($filename):不仅可以判断文件是否存在,同时也可以判断目录是否存在 is_file($filename):是确切的判断给定的路径是否是一个文件 is_readable()与is_writeable():在文件是否存在的基础上,判断文件是否可读与可写 file_put_contents($filename, ‘test’,FILE_APPEND):向文件中写入‘test’,并且以文件追加FILE_APPEND的方式写入 fileowner($filename):获得文件的所有者 filectime($filename):获取文件的创建时间 filemtime($filename):获取文件的修改时间 fileatime($filename):获取文件的访问时间 filesize($filename):可以取得文件的大小,文件大小是以字节数表示的 unlink($filename):删除文件 rmdir($dir):删除文件夹 foreach (glob(“*”) as KaTeX parse error: Expected '}', got 'EOF' at end of input: …me) { unlink( filename); }如果文件夹中存在文件,可以先循环删除目录中的所有文件,然后再删除该目录,循环删除可以使用glob函数遍历所有文件。
异常处理
数据库
mysql_connect():连接数据库 $link = mysqli_connect(‘mysql_host’, ‘mysql_user’, ‘mysql_password’ ) : mysqli扩展 mysql_select_db($db):选择数据库 mysql_query($sql):进行sql查询 mysql_fetch_assoc($result):读取数据,fetch_assoc返回根据从结果集取得的行生成的关联数组,如果没有更多行,则返回 false mysql_insert_id():获得自增的主键id mysql_fetch_array,可以通过设定参数来更改行数据的下标,默认的会包含数字索引的下标以及字段名的关联索引下标。可以通过设定参数MYSQL_NUM只获取数字索引数组,等同于mysql_fetch_row函数,如果设定参数为MYSQL_ASSOC则只获取关联索引数组,等同于mysql_fetch_assoc函数 mysql_affected_rows():函数来获取更新过的数据行数,如果数据没有变化,则结果为0 mysql_close($mnysql):关闭特定的数据库
相关阅读:
Spring Boot DevTools,实现自动应用重启、自动刷新浏览器以及静态资源热加载等功能
视频相关 压缩 编码 存储 查询 知识点
DebateGPT:通过多智能体辩论监督微调大模型
② 尚品汇的前台开发笔记【尚硅谷】【Vue】
Git 的基本概念和使用方式
Awesome-Selfhosted:互联网常见服务开源平替 | 开源日报 No.68
STM32-11-电容触摸按键
C | 在ubuntu22下开发的一些配置
spi协议精讲
大学生游戏静态HTML网页设计 (HTML+CSS+JS仿英雄联盟网站15页)
原文地址:https://blog.csdn.net/weixin_44485744/article/details/126263574