放了寒假.期末考试折腾了一个月都不会写代码了. 一放寒假就找了套PHP培训的课程 在这做些笔记,系统的学习一下php
2017.1.14
介绍集成环境---wamp
Apache服务器根目录 / --- www目录
Bin目
Apache配置文件路径:D:/wamp/bin/apache/Apache2.4.4/conf/httpd.conf
Mysql 配置文件:D:/wamp/bin/mysql/mysql5.6.12/my.ini
Php配置文件:phpinfo();
配置文件路径:
Php支持的扩展(模块)
Apache服务器
Mysql服务器
Php解析器是apache上的扩展模块
服务是可以开启和关闭的
如何开启 如何关闭?
1.图形界面
2.命令 net stop|start|restart 服务名称 wampapache|wampmysqld
3.计算机 -- 右键 管理 --服务和应用程序--服务--wampapche|wampmysqld
配置文件是在服务开启时加载的
修改了配置文件必须重启服务器
Logs 日志文件
Tmp 临时目录中存放的 临时文件
2.php标记
a.<?php.....?>推荐使用标记(混编时)
b.<?php.... 推荐使用(纯php文件)
C.<%....%> aps风格标记 需要在php配置文件修改此选项asp_tags = On 选项名称 = 选项值
D.<?.....?> 短风格标记 必须配置文件开启此选项:short_open_tag = On
E.<script language=”php”>...</script>长风格标记
2017.1.15
看了看php的基础语法
2017.1.16
php中单引号和双引号的区别
☆单引号内部的变量不会执行<=
☆双引号会执行<= 如
$name = 'hello'; echo "the $name"; 会输出 the hello
而如果是单引号
$name = 'hello'; echo 'the $name'; 会输出 the $name 主要区别就是这个
trim rtrim ltrim 函数
PHP自带的库函数 addslashes() 和 stripslashes() 都属于字符串处理类函数,作用正好相反
addslashes()函数原型 string addslashes(string str ,string charlist);
addslashes():对输入字符串中的某些预定义字符前添加反斜杠,这样处理是为了数据库查询语句等的需要。这些预定义字符是:单引号 (') ,双引号 (") ,反斜杠 (\) ,NULL。 stripslashes():删除由 addslashes() 函数添加的反斜杠。该函数用于清理从数据库或 HTML 表单中取回的数据。(若是连续二个反斜杠,则去掉一个,保留一个;若只有一个反斜杠,就直接去掉。)
PHP 指令 magic_quotes_gpc 为 on,对所有的 GET、POST 和 COOKIE 数据自动运行 addslashes()。
不要对已经被 magic_quotes_gpc 转义过的字符串使用 addslashes(),因为这样会导致双层转义。遇到这种情况时可以使用函数 get_magic_quotes_gpc() 进行检测
substr函数 函数原型string substr(string str,int start,int length)
php strcmp函数区分大小写 strcasecmp不区分大小写 str1和str2相同返回0
这里在CTF比赛中学习过php5.3以后版本的strcmp的漏洞
if (isset($_GET['a'])) { if (strcmp($_GET['a'], $flag) == 0) die('Flag: '.$flag); else print '离成功更近一步了'; }
提交数组a[]=1 strcmp函数返回0;输出flag;
strstr函数 string strstr(从哪里查找,查找谁);区分字母大小写从前往后
strchr函数
<?php $email = 'test@test.com@jb51.net'; $domain = strstr($email, '@'); echo "strstr => $domain<br>"."\r"; $domain = strrchr($email, '@'); echo "strrchr => $domain<br>"; ?>
<label>请选择要上传的图片(图片格式为.jpg):</label> <form method="post" action="index.php" enctype="multipart/form-data"> <input type="hidden" name="action" value="upload" /> <input type="file" name="u_file"/> <input type="submit" value="上传" /> </form> <?php if($_POST[action] == "upload"){ //判断提交按钮是否为空 $file_path = "./uploads\\"; //定义图片在服务器中的存储位置 $picture_name=$_FILES[u_file][name]; //获取上传图片的名称 $picture_name=strstr($picture_name , "."); //通过strstr()函数截取上传图片的后缀 if($picture_name!= ".jpg"){ //根据后缀判断上传图片的格式是否符合要求 echo "<script>alert('上传图片格式不正确,请重新上传'); window.location.href='index.php';</script>"; }else if($_FILES[u_file][tmp_name]){ move_uploaded_file($_FILES[u_file][tmp_name],$file_path.$_FILES[u_file][name]); //执行图片上传 echo "图片上传成功!"; } else echo "上传图片失败"; } ?>
substr_count("所有的字符","要查找的字符串")函数检索字符串出现的次数
str_ireplace(需要替换的字符串,替换成,总字符串,次数(可选)); //不区分大小写
str_replace()区分大小写
substr_replace(要操作的字符串,替换成的字符串,开始的位置,长度)
explode()函数 对立函数 implode()
被分割成字符串数组