PHP的学习

PHP:

  • PHP(全称:PHP:Hypertext Preprocessor,即"PHP:超文本预处理器")是一种通用开源脚本语言。

平台:Windows

数据库支持:MySQL

目的:实现网站

一.网站(website)

1.网站:

静态网站:.htm, .html, .xml;

动态网站:.asp, .jsp, .php (标志性符号:“?”)

2.服务器(server):

能够提供服务的机器,取决于机器上所安装的软件(为电脑提供服务的电脑

3.IP(Internet protocol):

4.域名(domain name):

<eg:www.itcast.cn>

>>特殊IP:127.0.0.1       特殊域名:localhost(代表本机)

5.DNS:

域名系统(输入域名localhost>>>DNS{localhost,127.0.0.1}>>>服务器电脑)

6.端口:

虚拟端口    物理端口

(输入域名localhost:端口>>>DNS{localhost,127.0.0.1}>>>服务器电脑>>>服务软件)

7.URL:

    URL由协议(http)、域名、路径和查询字符串组成。

二.web程序的访问流程

输入域名>>>DNS>>>服务器电脑>>>服务软件

URL:uniformed resource location

三.PHP语法初步

可以嵌入HTML中

1.PHP代码标记(区分PHP脚本与HTML)

ASP标记:<%     (php代码)     %>

短标记:<?       (php代码)      ?>

脚本标记:<script language>="php">         (php代码)       </script>

标准标记(常用):<?php      (php代码)        ?>

2.PHP注释

代码必须进行注释

行注释://  或者  #

块注释:/**/

3.PHP语句分隔符

语句分隔符:以行为单位,系统需要判断行的结束(英文状态下的分号:   ;)

>>特殊说明:

PHP中结束标记符?>自带语句结束符的效果,即在最后一句结尾可以没有分号

(parse error:解析你的错误;  syntax error:语法错误)

4.变量

PHP是一种动态网站开发的脚本语言,会有数据的传递,需要有PHP通过变量存储数据(临时存储)

1.变量的使用:

定义---能够赋值---可以通过变量名访问数据---可以修改,删除变量

>>定义:不需要任何关键字(eg:int,float),但需要加"$";

>>访问变量:echo(输出)

>>修改变量:代码按顺序运行

>>删除变量:unset(变量名)

2.变量的命名规则:

  • 变量以 $ 符号开头,其后是变量的名称
  • 变量名称必须以字母或下划线开头
  • 变量名称不能以数字开头
  • 变量名称只能包含字母数字字符和下划线(A-z、0-9 以及 _)
  • 变量名称对大小写敏感($y 与 $Y 是两个不同的变量)

注释:PHP 变量名称对大小写敏感!

           如果为变量赋的值是文本,请用引号包围该值。

3.可变变量:

一个变量保存的值刚好是另外一个变量的名字

//"$$var" 就是可变变量;在已声明的变量$var前又加上了一个变量符

$a='b';

$b='bala bala';

echo $$a;

4.预定义变量(外部变量):

系统定义的变量,存储许多需要用到的数据(预定义变量都是数组)

PHP的外部变量是PHP在使用过程中规定好的一些变量。

highlight_file(__FILE__);

For example:

>>>这个变量的规定是这样定的:

<html>
  <head>
  </head>
  <body>
<!-- 这一行method 对应的值改为post --->
<form action="req.php" method="post">
<input type="text" name="username"/>
<input type="password" name="pwd"/>
<input type="submit" name="提交"/>
</form>
  </body>
</html>

>>>PHP代码调用以上HTML代码中的外部变量方法如下所示:

<?php
//*$_POST[‘username’],将username作为字符串放在中括号里面,就得到了表单里面的<input type=”text”name=”username”/>的值*//
$u = $_POST['username'];
echo $u.'<br />';

/*$_POST[‘pwd’],将pwd作为字符串放在中括号里面,就得到了表单里面的<input type=”text”name=”pwd”/>的值*/
$passwd = $_POST['pwd'];
echo $passwd.'<br />';
?>

5.变量传值:将一个变量传给另外一个变量

值传递:

引用传递:

在内存中,通常有以下几个分区:

栈区:程序中可以操作的部分(不存数据,运行程序代码)

代码段:存储程序的内存部分,不执行

数据段:存储普通数据(全局区和静态区)

堆区:存储复杂数据,大但是效率低

小知识:

>>>正则表达式

一.限定符:   

1.问号:eg:used(?前面的字符可有可无,即该表达式可匹配use及used)

2.星号:eg:ab * c(匹配a和c之间存在零个或多个b的字符)

3.加号:eg:ab+c(匹配a和c之间存在一个以上的b的字符)

4.花括号:eg:ab{6}c(b出现的次数为六次)   

                      ab{2,6}c(b出现的次数为二到六次)  ab{2,}c(b出现的次数为二次以上)

5.括号:eg:(ab)+      匹配文段中ab的出现

二.“或”运算符:

竖线: '|'   eg:  a(cat | dog)==a cat  +a dog

三.字符类:

方括号:[  ]  eg:[abc]+   (表示文段中匹配的字符只能取自a,b,c);【a-z】(所有的小写字符)

尖号:^   (表示要求匹配除了尖号后面列出的【以外的字符)

四.元字符

大多数元字符一反斜杠(\)开头

\d:数字字符

\w:单词字符(等同于【A-Z a-z 0-9】)

>>>键和值:

       在参数中,键表示参数的名称,用于标识参数。值表示参数的具体内容或数据。例如,在`?num=1`中,"num"是键,"1"是值。

       这种用法是为了将参数的键和值进行关联,以便服务器能够正确地获取和解析这些参数。事实上,这个等号并不表示数学上的等于关系,而是作为分隔符来区分参数的键和值。

正则表达式修饰符

>>>intval函数

`intval()`是一个在PHP中常用的函数,用于将一个值转换为整数。它的作用是将传入的参数转换为整数类型,并返回转换后的整数值。

`intval()`函数只可以接受一个或两个参数:

- 如果只传递一个参数,它将尝试将该参数转换为整数。如果参数是一个数字字符串,它将返回相应的整数值。如果参数是一个数组,它将返回1。如果参数是一个非数字字符串,它将返回0。

- 如果传递了两个参数,第一个参数是要转换的值,第二个参数是可选的进制值。进制值指定了要将值转换为的进制(如二进制、八进制、十六进制等)。如果不提供进制值,默认为10(十进制)。

以下是一些使用`intval()`函数的示例:

$num1 = "123";
$result1 = intval($num1);
echo $result1;  // 输出 123

$num2 = "abc";
$result2 = intval($num2);
echo $result2;  // 输出 0

$num3 = "101010";
$result3 = intval($num3, 2);
echo $result3;  // 输出 42,将二进制字符串转换为十进制整数

num=4476e123             //输出4476,此时只看字母前面的

>>>preg_match函数

preg_match 函数用于执行一个正则表达式匹配。

语法

int preg_match ( string $pattern , string $subject [, array &$matches [, int $flags = 0 [, int $offset = 0 ]]] )

搜索 subject 与 pattern 给定的正则表达式的一个匹配。

参数说明:

  • $pattern: 要搜索的模式,字符串形式。

  • $subject: 输入字符串。

  • $matches: 如果提供了参数matches,它将被填充为搜索结果。 $matches[0]将包含完整模式匹配到的文本, $matches[1] 将包含第一个捕获子组匹配到的文本,以此类推。

  • $flags:flags 可以被设置为以下标记值:

            PREG_OFFSET_CAPTURE: 如果传递了这个标记,对于每一个出现的匹配返回时会附加字符串偏移量(相对于目标字符串的)。 注意:这会改变填充到matches参数的数组,使其每个元素成为一个由 第0个元素是匹配到的字符串,第1个元素是该匹配字符串 在目标字符串subject中的偏移量。
  • offset: 通常,搜索从目标字符串的开始位置开始。可选参数 offset 用于 指定从目标字符串的某个未知开始搜索(单位是字节)。

返回值

返回 pattern 的匹配次数。 它的值将是 0 次(不匹配)或 1 次,因为 preg_match() 在第一次匹配后 将会停止搜索。preg_match_all() 不同于此,它会一直搜索subject 直到到达结尾。 如果发生错误preg_match()返回 FALSE。

eg one:

<?php

/* 模式中的 \b 标记一个单词边界,所以只有独立的单词"web"会被匹配,而不会匹配 * 单词的部分内容比如"webbing" 或 "cobweb" */

if (preg_match("/\bweb\b/i", "PHP is the web scripting language of choice."))

{ echo "查找到匹配的字符串。\n"; }

else { echo "未发现匹配的字符串。\n"; }

if (preg_match("/\bweb\b/i", "PHP is the website scripting language of choice."))

{ echo "查找到匹配的字符串。\n"; }

else

{ echo "未发现匹配的字符串。\n"; }

?>

执行结果如下所示:

查找到匹配的字符串。
未发现匹配的字符串。

eg two:

<?php

//模式分隔符后的"i"标记这是一个大小写不敏感的搜索

if (preg_match("/php/i", "PHP is the web scripting language of choice."))

{ echo "查找到匹配的字符串 php。"; }

else

{ echo "未发现匹配的字符串 php。"; }

?>

执行结果如下所示:

查找到匹配的字符串 php。

对象(具体)

class(类)(抽象的,用来描述对象的部分具体特征)

析构函数(function __destruct)

(this指针)

PHP伪协议

反射(reflection class;    reflection object) 

foreach(遍历)

PHP弱比较(==)

md5弱比较

三元运算符

array(新建数组)

file_put_contents

$v0 = is_numeric($v1) and is_numeric($v2) and is_numeric($v3);(=的优先级比and要高)

路径问题

php中hash比较缺陷

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值