header(content-type:text/html;charset=utf-8);
一. php 的标记
或者
声明后便可以在其中编写 php 代码 php 还有其他标记方式, 不作了解.
二. php 注释 注释方式与 js 类似.
三. 变量 与 常量 1. 变量 变量的声明形式为:$a = 10;$b = aaa;
输出变量的值,可以使用: echo 进行输出查询.同时,变量声明时允许互相进行嵌套, 如: $n = 'hello';$$n = 'gaoshan';echo $hello;
输出结果为:
gaoshan
除此以外, echo还可以输出标签内容 echo 这是一个百度的链接;或echo ;
那么,输出的形式即为一个连接以及一个按钮.
有一点需要注意的是, 赋值时$c=$a表示把 a 的值赋给 c 但是对 a 本身没有影响, 而&$c=$a 表示将 a 的储存地址赋值给 c , 之后a 和 c 改一个,另一个就跟着一起变化. 2. 常量 参数定义 常量:不能改变的量常量一经定义,就不能再次被赋值第一个参数:要定义的常量名第二个参数:常量的值第三个参数:对大小写是否 _*不敏感(true)_*
举例:
define(pi, 3.1415926, true);echo pi;echo pi;
此时,两个输出都为3.1415926, 但是如果将参数三的true改为false, 那么echo pi;报错.
3. echo 特点 echo 后如果连接的字符串中含有变量, 那么应根据需要使用或者'', 在中,$默认为变量的声明符号,但是在''中,$默认为一个符号,以$原型进行输出.如 $name = tom;$age = 22;echo 我的名字叫$name,年龄$age;echo '我的名字叫$name,年龄$age';
此时的打印结果为
我的名字叫tom,年龄22我的名字叫$name,年龄$age
当我们想要输出一个对象的格式及内容时, 通常采用的输出函数为var_dump( ).如 var_dump($age);var_dump(hhahsdhd);
此时打印的结果为
int(22) string(8) hhahsdhd
echo 会对输出的值进行计算,如 echo z12 + 34b + 5 + true;
此时打印的结果为
40 //0 + 34 + 5 + 1
4. 超关键字 可以在所有场景使用的关键字如:
echo __line__; // 输出此行行数
echo __file__; // 输出此文件的文件地址
function show() { echo __function__; // 输出此函数的函数名};show(); // 输出为 show
次超关键字
echo $_server['http_user_agent']; // 打印服务器信息
定义一个类
class person { public function showname() { // 函数名不区分大小写 echo __class__; //打印出是哪个类的 结果为person echo __method__; // 打印出类的方法 }}
使用创建的这个类创建对象
$p = new person();echo $p -> showname(); // 结果为person 和person::showname
5. 字符串 介绍了一些 php 中操作字符串的常用函数
1. 字符串的连接 输出的时候是用 . 进行连接的, 如
$str = world;echo $str . hahaha; //显示为: worldhahaha
注:在这里, 用 . 和用 , 连接在视觉上是没有区别的, 但是用点连接是把两个字符串拼接为一个, 而用逗号则是把两个字符串单纯地放在一起显示而已.
2. 获取字符串的长度 echo strlen($str); //显示为5
3. 判断子字符串第一次出现的位置 如判断 bc 在 aabbcbc 中出现的位置
echo strpos(aabbcbc, bc); // 输出为 5
如果不区分大小写
echo stripos(aabbcbc, bc); // 输出为 3
4. 二进制安全的概念 _*概念 :*_ 对字符串做操作时,是否代表字符串结束的\0字符做处理,是停止,还是继续往下检查,这个特性是继承 c语言的.
_*不安全:*_ 停止, 因为无法读取\0后面的字符串 _*安全:*_ 把\0当做字符,继续向下读取 举例:
echo strcoll(aaaa, aaaa\0asdasds);
这里举了一个不安全的字符串相关函数,是判断两个字符串是否相等的. 我们看到, 在读取第二个字符串时, 函数将\0后面的内容都省略了, 判断结果为0, 即相等.
5. 字符串的替换 $str1 = gaoshan@163.com;echo str_replace(g, s, $str1); // 这是敏感大小写的方式echo str_ireplace(g, s, $str1); // 这是忽略大小写的方式// 以上两个输出的结果均为: saoshan@163.com
6. 字符串的截取 这里我们使用两种方法:
1) substr(要做处理的字符串, 从第几个开始截取, 截取几个字符) echo substr(hello world, 3, 4); // 输出为: lo w
2) 找到字符串第一次出现的位置,并返回之后的字符 echo strstr(hello world, lo); // 输出结果为: lo world
7. 删除字符串前后的空格 $strt = hello world!!! ; echo trim($strt);// 输出结果为: hello world!!!
8. 字符串大小写的转化 小转大
$stra = fgjhgkbadkahd;echo strtolower($stra); // 输出结果为: fgjhgkbadkahdecho strtoupper($stra); // 输出结果为: fgjhgkbadkahd
9. 倒序字符串 echo strrev(hello php); // 输出结果为: php olleh
10. 取出标签内的内容 / 取出含标签的内容 echo strip_tags(tom);// 输出结果为: tomecho htmlspecialchars(tom);//输出结果为: tom
6. 数组 1. 数组的创建和打印 $arr = array(4, 7, 6, 2, 9);var_dump($arr);// 输出结果为: array(5) { [0]=> int(4) [1]=> int(7) [2]=> int(6) [3]=> int(2) [4]=> int(9) }
2. 数组元素的访问 echo $arr[2]; // 输出元素为: 6
3. 添加数组元素 $arr[] = 10;$arr[] = array('a','b');var_dump($arr);// 输出结果为; array(7) { [0]=> int(4) [1]=> int(7) [2]=> int(6) [3]=> int(2) [4]=> int(9) [5]=> int(10) [6]=> array(2) { [0]=> string(1) a [1]=> string(1) b } } print_r($arr); // 专门用来输出数组的函数, 输出结果为: array ( [0] => 4 [1] => 7 [2] => 6 [3] => 2 [4] => 9 [5] => 10 [6] => array ( [0] => a [1] => b ) )
4. 数组的标准创建及操作方式 $arrk=array(user=>tom,password=>123456);print_r($arrk); // 输出的结果为: array ( [user] => tom [password] => 123456 ) echo $arrk[user]; // 输出结果为: tom$arrk[sex] = male;$arrk[] = aaa;print_r($arrk); // 输出结果为: array ( [user] => tom [password] => 123456 [sex] => male [0] => aaa )
5. 数组的遍历 接4代码
foreach ($arrk as $key => $value) { echo $key.的值是:.$value.
;};
输出结果为:
user的值是:tompassword的值是:123456sex的值是:male0的值是:aaa
6. 删除数组中的某个键值对 假设有这样的一个数组
$arr = array(name => tom, age => 22);print_r($arr);// 输出结果为: array ( [name] => tom [age] => 22 ) echo json_encode($arr);// 输出结果为: {name:tom,age:22}//这是把数组数据转化成 json 格式,方便阅读
那么如果要删除数组中的 name 键值对
unset($arr[name]);print_r($arr); // 输出结果为: array ( [age] => 22 )
7. 数组的长度 echo count($arr);
8. 判断一个值是否在数组内 注意:这里的有没有,指的是值,1和1是等价的. 这个函数会有一个布尔返回值.
$arr1 = array(3,6,9,5,33,10);var_dump(in_array(33, $arr1)); // true
9. 二维数组 $arrt = array(array(11,22,33),array(44,55,66));echo $arrt[1][2]; // 打印结果为: 66
10. 速生成一个数组 $arrfast1 = range(1,9);
$arrfast2 = range(a,a);
7. 表单 php 文件是如何获取 html 提交的信息呢?
html:
用户名:
密__码:
php:
当在 html 文件中提交 submit 表格时, 信息就会在 php 文件中被打印出来.
8. 函数 1. 函数的使用 在 php 中函数的使用和 js 是基本相同的.
function show() { echo aaaa;};show();
带参数:
function sayhello($a) { echo . $a;};sayhello(asdhkasdh);
带返回值:
function retfunc() { return lalalala;}echo retfunc();
2. 传引用参数 不加 & 的时候,只是将 $a = 20;的那个20的值赋值给函数,在函数中改了参数值,$a的值不变加了 & 的时候,是将$a = 20;的地址赋给函数的参数,在函数中改了参数值,$a的值变化
function varop(&$c) { $c =40; echo $c;}$a = 20;varop($a);echo $a;
3. 赋给函数参数默认值 function add($m, $n=9) { echo $m + $n;}add(3, 4); // 3+4add(3); // 3+9add(3); // 不区分大小写
##**四. 文件控制**利用 php 可以对文件夹内的文件进行控制操作.首先在同一个目录下,创建一个名为11.txt 的文件.
1. 打开文件 $f = fopen(11.txt, r);
r 为 mode 形式, 生命了可以对文件进行的处理方式.
代码 含义
r 只读方式打开,将文件指针指向文件头。
r+ 读写方式打开,将文件指针指向文件头。
w 写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。
w+ 读写方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。
a 写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。
a+ 读写方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。
x 创建并以写入方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 false,并生成一条 e_warning 级别的错误信息。如果文件不存在则尝试创建之。
x+ 创建并以读写方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 false,并生成一条 e_warning 级别的错误信息。如果文件不存在则尝试创建之。
2. 读取文件 读取文件有以下四种方式:
1). 按字符读取 $str = fread($f, 3);// 读的什么文件 , 以及一次读多长(3个字节表示一个汉字)
可以获取文件的大小, 全部读取
$str = fread($f, filesize(11.txt));
2). 按行读取 $str = fgets($f); // 这是一行 echo $str;
按行遍历文件
while ($str=fgets($f)) { echo $str.
;}
3). 把文件放在数组里 $arr = file(11.txt);print_r($arr);
4). 整篇读取(速度最快) $str = file_get_contents(11.txt);echo $str;
3. 写入文件 一行行写,写入的内容会覆盖原内容,如果文件本身不存在,会创建新文件,然后写入.
$f = fopen(11.txt,w);fwrite($f, tom\n); fwrite($f, jerry\n);
如果需要整篇写入内容:
file_put_contents(11.txt, 吃葡萄不吐葡萄皮,不吃葡萄倒吐葡萄皮);
4. 关闭文件 操作完关闭文件是一个好习惯
fclose($f);
5. 拷贝文件 直接将文件拷贝一份放在原文件夹内
copy(11.txt, 22.txt);
6. 重命名文件 rename(22.txt, 33.txt); // 22.txt 被重命名为33.txt
7. 删除文件 unlink(33.txt); // 33.txt 被删除
##**五. 目录操作**
首先获取当前目录
$d = opendir(.) // . 表示当前目录, .. 表示上级目录
1. 打开当前目录 1). 依次读取当前目录中的一条内容 $str = readdir($d);echo $str;
如果想依次读取目录中的几条内容,就将上面的代码重复输入.
2). 读取并打印此目录下的所有文件 将此目录中的内容循环读取, 并依次打印
while ($str = readdir($d)) { echo $str . ;}
3). 关闭文件夹 closedir($d);
2. 获取目录文件的数组 $arr = scandir(.);for ($i=0; $i
var_dump(mkdir(test)); // bool(true)
删除:
var_dump(rmdir(test)); // bool(true) 只有空的目录才可以被删除
4. 操作 url 首先在本机获取一个地址地址的基本信息打印
$path = http://localhost/phpsample/dirmanage%e7%9b%ae%e5%bd%95%e6%93%8d%e4%bd%9c.php; // 文件路径
$str = basename($path); // 文件名
$str = dirname($path); // 所在文件夹的名字
$newpath = $str./login.html; // 利用 php echo 的特点,我们可以将获取的地址拼接为新的地址进行操作
$arr = pathinfo($path); // 将相关信息一次性打印