云翔计划招生!定向培养、全程辅导、就业无忧!

咨询电话:400-6799-697

PHP 基础知识 (1)

时间:2021-08-31

  PHP语言基础简单整理

  1.开始结束标记

  2.定义变量:$变量名 例:$str="锦清笋";不需要指明数据类型

  3.输出语句:

  (1)echo "hello world!";---echo命令

  (2)print();输出语句,是函数,有返回值。输出成功返回1,失败返回0。

  (3)printf();格式化输出字符串。例:printf("%d,%f",12,12.3);

  (4)sprintf();格式化拼接字符串,不是输出语句,只能将字符串拼接。

  (5)print_r();输出数组、对象等复合数据类型

  4.数据类型:

  (1)简单数据类型:

  Boolean 布尔型

  string 字符串型

  integer 整型

  float 浮点型

  (2)复合数据类型:

  array 数组

  object 对象

  (3)特殊数据类型:

  resource 资源

  null 空值

  5.数据类型转换:

  在变量前加上括号括起来的类型名称即可。

  6.检测数据类型:

  is_bool 检查变量是否是布尔类型

  is_string ....

  is_float或is_double ....

  is_integer 或 is_int ....

  is_null ....

  is_array ....

  is_object ....

  is_numeric 检测变量是否为数组或由数字组成的字符串

  7.声明和使用常量:

  定义语法:define(‘PRICE’,100);

  echo PRICE;

  8.变量作用域:

  局部变量:即在函数的内部定义的变量,其作用域是所在的函数

  全局变量:即被定义在所有函数以外的变量,其作用域是整个php文件,但是在用户定义的函数内部不可用。想在用户定义的函数内部使用全局变量,要使用global关键词声明。

  例:$a=123;

  function test()

  {

  global $a;

  echo $a;

  }

  静态变量:能够在函数调用结束后仍保留变量值,当再次回到其作用域时,又可以继续使用原来的值。使用静态变量时,先要用关键字static来声明变量,需要把关键字static放在要定义的变量之前。

  9.预定义变量:通过预定义变量可以获取用户会话、用户操作系统的环境和本地操作系统的环境等信息。如:

  $GLOBALS,$_SERVER,$_GET,$_POST,$_REQUEST,$_COOKIE,$_SESSION,$_FILES.

  10.字符串运算符:句号:“.”;连接字符串

  特别是拼写sql语句时:".$变量名."

  11.逻辑运算符:逻辑异或:^或xor 当一个为真,一个为假时,结果为真,其他为假。

  恒等:===

  优先级:||在and之前,or在and之后。

  12.@错误屏蔽:@错误屏蔽运算符可以对程序中出现错误的表达式进行操作,进而对错误进行屏蔽,其使用的方法就是在错误的表达式前加“@”即可。它只是对错误信息进行屏蔽,并没有真正解决错误。

  13.定义和调用函数:函数名不区分大小写

  function test($var1,$var2)

  {

  函数体

  }

  test($var1,$var2);

  函数的返回值:使用return返回单个值,和使用list()语言结构返回多个值。

  传值调用:$变量名

  传址调用:&$变量名

  14.Form表单:

  两种提交方式:get:将表单数据当做url的一部分传过去;url格式:http://地址:端口/目录/文件?var1=value1&...varn=valuen最长1024k

  post:相比get而言,更安全,并不会导致因数据过长而引起url的数据丢失

  使用超链接传值时必须用get来接收:ADD 接收:$uid=$_GET["uid"];

  注意:的格式只有在没有判断语句时才能使用。

  对表单传递的变量进行编码和解码:PHP中实现对查询字符串进行URL编码可以通过函数urlencode()实现,该函数的使用格式如下:string urlencode(string str);对URL编码后的查询字符串进行解码,可以通过urldecode()函数实现,该函数的使用格式如下:string urldecode(string str);

  15.PHP连接数据库:

  步骤: 一、建立连接------mssql_connect(server,uid,pwd);

  二、指定database-------mssql_select_db(databasename);

  三、执行sql------mssql_query($sql,$link);

  四、处理记录集-------资源类型数据,格式:bof---数据---eof

  五、以特定格式读取数据-----mssql_fetch_array()....

  六、释放相关资源、关闭连接------mssql_free_result($result);mssql_close();

  16.数组:php的数组由键值和value值组成

  定义:$array = array("键值"=>"value","键值"=>"value","键值"=>"value");如果不给键值赋值,默认从0开始的int值

  相关函数:(1)in_array("值",数组名); 返回bool型-----查看数组中是否存在某value值

  (2)array_key_exists("key值",数组名); 返回bool型-----查看数组中是否存在某键值

  (3)array_keys(数组名);---将数组键值返回出来形成一个新数组,此键值作为新数组的value值

  (4)array_values(数组名);---将数组value值返回出来形成一个新数组,此值作为新数组的value值

  (5)key(数组名);----返回当前指针指向的元素key值

  (6)current(数组名);----返回当前指针指向的元素value值

  (7)next(数组名);----挪动当前数组指针到下一步

  (8)reset(数组名);----恢复数组指针,指向第0个元素

  (9)end(数组名);----将指针挪向最后一个元素

  (10)prev(数组名);----将指针向前挪动一位

  (11)foreach(数组名 as $key=>$value)

  {

  $key是键值,$value是value值,实现数组遍历

  }

  (12)each(数组名);----将当前数组元素依次取出(自动挪动指针)并放到一个新的数组中

  (13)array_shift(数组名);----返回数组中第一个元素值

  (14)array_pop(数组名);----返回数组最后一个元素值

  (15)array_push(数组名,value);----向数组中追加元素

  (16)array_unshift(数组名,value);----在数组最前面添加元素

  (17)array_pad(数组名,数组长度,value);----向数组中追加多个元素,对数组副本操作,不改变原数组,返回一个新数组

  (18)count();----返回个数

  (19)array_unique(数组名);----去掉数组中重复部分,操作数组副本,不改变原数组,返回新数组

  (20)sort(数组名);----从小到大升序排列数组value值,一般针对int型value值,返回bool型,成功返回true

  (21)rsort(数组名);----从大到小,逆序排列数组value值

  (22)array_combine(数组1,数组2);----将数组1的value值作为key,数组2的value值作为value值,形成一个新数组

  (23)array_merge(数组1,数组2,数组3...);----合并多个数组,将多个数组value值依次合并,合为一个数组

  (24)array_slice(数组名,int,int);----从目标数组截取元素,形成一个新数组。开始位置为第二个参数,结束位置为第三个参数。若第三个参数不写,则默认是截取到最后。

  (25)array_splice();----用法同array_slice();但是其截取部分从原数组中删除

  (26)explode("字符依据",目标字符串);----将字符串按照一定的依据拆分成数组

  (27)implode("字符依据",目标数组);----将数组元素按照依据组合成一个字符串

  (28)range(mixed low,mixed high[number step]);----生成数组,例:range(1,100,8);---即从1到100,每8位取一个数,组成一个数组

  (29)shuffle(数组名);----用于将数组进行随机排序

  (30)array_sum(数组名);----对数值型数组元素值进行求和

  (31)array_chunk(数组名,int);----分割目标数组,返回一个新数组,其中数组的每个元素都是一个一维数组,int参数为分割成的一维数组的长度

  17.Cookie和会话控制:

  Cookie是在HTTP协议下,服务器或脚本可以维护客户工作站上信息的一种方式。Cookie是由Web服务器保存在客户机上的小文本文件,它可以包含有关用户的信息。无论何时用户链接到服务器,Web站点都可以访问Cookie信息。

  存在server端的是session,存在client端的是cookie,它们用来存储全局变量。

  设定Cookie值:setcookie("名","值");

  通过Cookie数组取值:$_cookie["名"];

  设置生成期:setcookie("名","值",time()+1800);生成期为当前时间加1800秒之后。

  删除cookie: setcookie("名","",time()-3600);中间值设置为空,并将当前时间减去3600秒。

  Cookie数组:setcookie("名[key]","值"); 使用foreach读取。

  在PHP中可以通过$_COOKIE预定义变量访问Cookie的值。如果设置了php.ini中的register_long_arrays,那么就能够应用$_COOKIE和$HTTP_COOKIE_VARS;如果在php.ini中还设置了register_globals,那么就可以在PHP中作为全局变量使用各个Cookie值。但是,更改php.ini中的两个文件设置,容易对PHP的安全构成威胁,不推荐使用该方法,建议使用更新的$_COOKIE。

  会话ID的传送

  会话ID的传送有两种方式,一种是Cookie方式,另一种是URL方式。

  Cookie传送方式:

  这是最简单的会话方式,但是有些客户可能限制使用Cookie,如果客户限制使用Cookie的条件下,仍要继续工作,那就要通过其他方式来实现了。

  URL传送方式:

  在该方式中,URL本身用来传送会话,会话标志被简单地附加到URL的尾部,或者作为窗体中的一个变量来传递。例:ADD

  会话ID的生成:

  PHP的会话函数会自动处理ID的创建,但也可以通过手工方式创建会话ID。它必须是不容易被人猜出来的,否则有安全隐患。

  一般推荐生成会话ID使用随机数发生器函数srand(),函数声明如下:

  srand((double)microtime()*1000000);

  在调用该函数后,要想生成一个唯一的会话ID,还必须使用下面的语句:

  md5(unique(rand()));

  Session会话:

  创建会话的步骤:启动一个会话,注册会话变量,使用会话变量和注销会话变量。

  (1)启动一个会话:》通过session_start();函数创建会话,函数声明为:bool session_start(void);

  》通过设置php.ini自动创建会话:设置php.ini中的session.auto_start选项,激活该选项即可自动创建会话(配置值改为1),但是使用该方法启动auto_start会导致无法使用对象作为会话变量。

  (2)注册会话变量:会话变量被启动后,全部保存在数组$_session中。通过数组$_session,直接给该数组提添加一个元素即可创建一个会话变量: $_session[session_name]=session_value;

  (3)使用会话变量:if(!empty($_session[session_name])){$myvalue=$_session[session_name]}

  (4)注销会话变量:注销某个session成员:unset($_session[session_name])

  注销所有会话功能:$_session=array();然后使用session_destory();函数清除会话ID。

  18.字符串处理:

  (1)获取字符串长度:int strlen($str);

  (2)将指定字符串转换成大写:strtoupper($str);

  (3)将首字母转换成大写:ucfirst($str);

  (4)字符串与HTMl相互转换:htmlspecialchars($str);----将字符串中某些特殊字符转化成html格式

  (5)去除字符串的空格:trim()---去两遍空格,ltrim()----去左边空格,rtrim()----去右边空格

  (6)substr_count($str,"value");查询某字符在目标字符串中出现的个数

  (7)strpos($str,"value");----定位字符位置,返回int

  (8)防止单引号破坏sql语句:自动转义函数:addslashes();

  

  $str = "Is your name O'reilly?";

  // 输出:Is your name O\'reilly?

  echo addslashes($str);

  ?>

  (9)截取字符串:substr($str,start_int,end_int);---return $newstr

  (10)填充字符串:string str_pad ( string input, int pad_length [, string pad_string [, int pad_type]] )

  例:

  $input = "Alien";

  echo str_pad($input, 10); // produces "Alien "

  echo str_pad($input, 10, "-=", STR_PAD_LEFT); // produces "-=-=-Alien"

  echo str_pad($input, 10, "_", STR_PAD_BOTH); // produces "__Alien___"

  echo str_pad($input, 6 , "___"); // produces "Alien_"

  ?>

  (11)字符串的比较:int strcmp ( string str1, string str2 )----按逐个字符的ascll码进行比较,如果返回等于0,则相等;大于0,则str1大于str2;小于0,则str1小于str2。

  (12)数字字符串的格式化:string number_format ( float number [, int decimals [, string dec_point, string thousands_sep]] )

  该函数可以有1个,2个,或4个参数,但不能使三个。decimals意思是取小数点后几位,dec_point用来代替小数点,thousands_sep用来代替千位分隔符。

  (13)查找和替换:

  查找:string strstr ( string haystack, string needle )

  例:

  $email = 'user@example.com';

  $domain = strstr($email, '@');

  echo $domain; // prints @example.com

  ?>

  替换:mixed str_replace ( mixed search, mixed replace, mixed subject [, int &count] )----区分大小写

  mixed str_ireplace ( mixed search, mixed replace, mixed subject [, int &count] )----不区分大小写

  (14)URL字符串解析:array parse_url ( string url )将url地址按照其构成解析成一个特殊数组。数组结构为:

  Array

  (

  [scheme] => http

  [host] => hostname

  [user] => username

  [pass] => password

  [path] => /path

  [query] => arg=value

  [fragment] => anchor

  )