PHP全栈学习笔记10
php常量,常量是不能被改变的,由英文字母,下划线,和数字组成,但是数字不能作为首字母出现。
bool define ( string $name , mixed $value [, bool $case_insensitive = false ] )
<?php
// 区分大小写的常量名
define("44", "Welcome to 444");
echo 44;
echo '<br>';
echo 55;
?>
<?php
// 不区分大小写的常量名
define("Da", "Welcome to dashu", true);
echo da;
?>
字符串变量是用于存储并处理文本的,包含有字符的值,创建,使用,存储在变量中
<?php
$txt="Hello world!";
echo $txt;
?>
运算符(.)用于把两个字符串值连接起来
strlen()函数返回字符串的长度
<?php
echo strlen("Hello world!");
?>
Strpos() 函数用于在字符串内查找一个字符或一段指定的文本。
<?php
echo strpos("Hello world!","world");
?>
三元运算符
(expr1) ? (expr2) : (expr3)
PHP 条件语句
if (条件)
{
条件成立时要执行的代码;
}
if (条件)
{
条件成立时执行的代码;
}
else
{
条件不成立时执行的代码;
}
if (条件)
{
if 条件成立时执行的代码;
}
elseif (条件)
{
elseif 条件成立时执行的代码;
}
else
{
条件不成立时执行的代码;
}
<?php
switch (n)
{
case label1:
break;
case label2:
break;
default:
}
?>
PHP 循环
while (条件为真) {
}
do {
} while (条件为真);
for (初始值; 条件; 增量)
{
}
foreach ($array as $value)
{
}
PHP 函数
<?php
function functionName()
{
// 要执行的代码
}
?>
PHP默认参数值
<?php
function aa($aaa=50) {
echo "The is : $aaa<br>";
}
aa(); // 将使用默认值 50
?>
PHP函数返回值
<?php
function add($x,$y)
{
$total=$x+$y;
return $total;
}
echo "1 + 5= " . add(1,5);
?>
PHP 数组
array();
$name=array("a","b","c");
获得数组的长度
<?php
$name=array("a","b","c");
echo count($name);
?>
遍历索引数组
<?php
$name=array("a","b","c");
$arrlength=count($name);
for($x=0;$x<$arrlength;$x++) {
echo $name[$x];
echo "<br>";
}
?>
遍历关联数组
<?php
$age=array("a"=>"aa","b"=>"bb","c"=>"cc");
foreach($age as $x=>$x_value){
echo "Key=" . $x . ", Value=" . $x_value;
echo "<br>";
}
?>
<?php
$aaa = array
(
"course"=>array
(
"c",
"https://a/list"
),
"class"=>array
(
"b",
"https://a.com"
),
"coding"=>array
(
"a",
"https://aa.com"
)
);
print("<pre>"); // 格式化输出数组
print_r($aaa);
print("</pre>");
?>
PHP 数组排序
PHP 全局变量
// $GLOBALS全局变量
<?php
$x = 2;
$y = 3;
function add() {
$GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y'];
}
add();
echo $z;
?>
$_SERVER全局变量
$_REQUEST 用于收集HTML表单提交的数据
$_POST全局变量
$_GET全局变量
PHP 表单, $_GET 和 $_POST 用于收集表单数据
PHP下拉菜单单选
<?php
$q = isset($_GET['q'])? htmlspecialchars($_GET['q']) : '';
?>
PHP下拉菜单多选( multiple="multiple")
PHP 表单验证
htmlspecialchars() 函数把特殊字符转换为 HTML 实体
<script>location.href('http://www.aaa.com')</script>
PHP 日期函数
string date ( string $format [, int $timestamp ] )
date()格式化日期
d--代表月中的天(01-31)、m--代表月(01--12)、Y--代表年(四位数)、1--代表周里的某天
获取时区
<?php
date_default_timezone_set("Asia/Shanghai");
echo "当前时间是 " . date("h:i:sa");
?>
readfile()函数读取文件,并把它写入输入缓冲
fopen()函数第一个参数包含被打开的文件名,第二个参数规定打开文件的模式
fread() 函数读取打开的文件
fclose()函数用于关闭打开的文件
fgets()函数用于从文件读取单行
fgetc()函数用于从文件中读取单个字符
fopen()函数也用于创建文件
fwrite()函数用于写入文件
创建一个文件上传表单
<html>
<body>
<form action="upload_file.php" method="post"
enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file" />
<br />
<input type="submit" name="submit" value="Submit" />
</form>
</body>
</html>
创建上传脚本
<?php
if ($_FILES["file"]["error"] > 0)
{
echo "Error: " . $_FILES["file"]["error"] . "<br />";
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "<br />";
echo "Type: " . $_FILES["file"]["type"] . "<br />";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
echo "Stored in: " . $_FILES["file"]["tmp_name"];
}
?>
$_FILES["file"]["name"]
被上传文件的名称
$_FILES["file"]["type"]
被上传文件的类型
$_FILES["file"]["size"]
被上传文件的大小,以字节计
$_FILES["file"]["tmp_name"]
存储在服务器的文件的临时副本的名称
$_FILES["file"]["error"]
由文件上传导致的错误代码
上传限制
<?php
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/pjpeg"))
&& ($_FILES["file"]["size"] < 20000))
{
if ($_FILES["file"]["error"] > 0)
{
echo "Error: " . $_FILES["file"]["error"] . "<br />";
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "<br />";
echo "Type: " . $_FILES["file"]["type"] . "<br />";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
echo "Stored in: " . $_FILES["file"]["tmp_name"];
}
}
else
{
echo "Invalid file";
}
?>
保存被上传的文件
<?php
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/pjpeg"))
&& ($_FILES["file"]["size"] < 20000))
{
if ($_FILES["file"]["error"] > 0)
{
echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "<br />";
echo "Type: " . $_FILES["file"]["type"] . "<br />";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />";
if (file_exists("upload/" . $_FILES["file"]["name"]))
{
echo $_FILES["file"]["name"] . " already exists. ";
}
else
{
move_uploaded_file($_FILES["file"]["tmp_name"],
"upload/" . $_FILES["file"]["name"]);
echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
}
}
}
else
{
echo "Invalid file";
}
?>
PHP cookie
Cookie常用于识别用户
setcookie(name, value, expire, path, domain);
<?php
setcookie("user", "dashucoding", time()+3600);
?>
<html>
<body>
</body>
</html>
$_COOKIE变量用于取回cookie的值
<?php
//输出cookie值
echo $_COOKIE["user"];
//查看所有cookie
print_r($_COOKIE);
?>
使用isset()函数来确认是否设置了cookie
<html>
<body>
<?php
if (isset($_COOKIE["user"]))
echo "Welcome " . $_COOKIE["user"] . "!<br />";
else
echo "Welcome!<br />";
?>
</body>
</html>
删除cookie
<?php
// 设置 cookie 过期时间为过去 1 小时
setcookie("user", "", time()-3600);
?>
浏览器不支持cookie
在应用程序中从一张页面向另一张页面传递信息
<html>
<body>
<form action="welcome.php" method="post">
姓名: <input type="text" name="name" />
年龄: <input type="text" name="age" />
<input type="submit" />
</form>
</body>
</html>
<html>
<body>
Welcome <?php echo $_POST["name"]; ?>.<br />
You are <?php echo $_POST["age"]; ?> years old.
</body>
</html>
PHP session变量用于存储关于用户会话信息,或者更改用户会话设置
工作机制
为每个访问者创建一个唯一的 id (UID),并基于这个 UID 来存储变量。UID 存储在 cookie 中,亦或通过 URL 进行传导。
<?php session_start(); ?>
<html>
<body>
</body>
</html>
存储session变量
<?php
session_start();
// 存储session数据
$_SESSION['add']=1;
?>
<html>
<body>
<?php
//检索session数据
echo "浏览量=". $_SESSION['add'];
?>
</body>
</html>
<?php
session_start();
if(isset($_SESSION['views'])){
$_SESSION['views']=$_SESSION['views']+1;}
else{
$_SESSION['views']=1;}
echo "浏览量:". $_SESSION['views'];
?>
unset()函数用于释放指定的session变量
session_destroy()彻底销毁session
<?php
unset($_SESSION['views']);
?>
<?php
session_destroy();
?>
mail()函数用于从脚本中发送电子邮件
mail(to,subject,message,headers,parameters)
<?php
$to = "dashucoding@qq.com"; // 邮件接收者
$subject = "参数邮件"; // 邮件标题
$message = "这是邮件的内容。"; // 邮件正文
$from = "dada@qq.com"; // 邮件发送者
$headers = "From:" . $from; // 头部信息设置
mail($to,$subject,$message,$headers);
echo "邮件已发送";
?>
<html>
<body>
<?php
if (isset($_REQUEST['email']))
//如果接收到邮箱参数则发送邮件
{
//发送邮件
$email = $_REQUEST['email'] ;
$subject = $_REQUEST['subject'] ;
$message = $_REQUEST['message'] ;
mail( "someone@example.com", "Subject: $subject",
$message, "From: $email" );
echo "邮件发送成功";
}
else
//如果没有邮箱参数则显示表单
{
echo "<form method='post' action='mailform.php'>
Email: <input name='email' type='text' /><br />
Subject: <input name='subject' type='text' /><br />
Message:<br />
<textarea name='message' rows='15' cols='40'>
</textarea><br />
<input type='submit' />
</form>";
}
?>
</body>
</html>
// 有问题的代码
防止email注入的最好方法是对输入进行验证
<html>
<body>
<?php
function spamcheck($field)
{
// filter_var() 过滤 e-mail
// 使用 FILTER_SANITIZE_EMAIL
$field=filter_var($field, FILTER_SANITIZE_EMAIL);
//filter_var() 过滤 e-mail
// 使用 FILTER_VALIDATE_EMAIL
if(filter_var($field, FILTER_VALIDATE_EMAIL))
{
return TRUE;
}
else
{
return FALSE;
}
}
if (isset($_REQUEST['email']))
{
// 如果接收到邮箱参数则发送邮件
// 判断邮箱是否合法
$mailcheck = spamcheck($_REQUEST['email']);
if ($mailcheck==FALSE)
{
echo "非法输入";
}
else
{//发送邮件
$email = $_REQUEST['email'] ;
$subject = $_REQUEST['subject'] ;
$message = $_REQUEST['message'] ;
mail("someone@example.com", "Subject: $subject",
$message, "From: $email" );
echo "Thank you for using our mail form";
}
}
else
{
// 如果没有邮箱参数则显示表单
echo "<form method='post' action='mailform.php'>
Email: <input name='email' type='text' /><br />
Subject: <input name='subject' type='text' /><br />
Message:<br />
<textarea name='message' rows='15' cols='40'>
</textarea><br />
<input type='submit' />
</form>";
}
?>
</body>
</html>
PHP 错误
<?php
if(!file_exists("da.txt")){
die("文件不存在");
}else{
$file=fopen("da.txt","r");
}
?>
结言
好了,欢迎在留言区留言,与大家分享你的经验和心得。
感谢你学习今天的内容,如果你觉得这篇文章对你有帮助的话,也欢迎把它分享给更多的朋友,感谢。
感谢!承蒙关照!您真诚的赞赏是我前进的最大动力!
PHP全栈学习笔记10的更多相关文章
- PHP全栈学习笔记13
php与ajax技术 web2.0的到来,ajax逐渐成为主流,什么是ajax,ajax的开发模式,优点,使用技术.(ajax概述,ajax使用的技术,需要注意的 问题,在PHP应用ajax技术的应用 ...
- PHP全栈学习笔记16
<?php $fileName = "php大师.test.php"; //补充程序,显示文件名(不包括扩展名) $start = strrpos($fileName, &q ...
- PHP全栈学习笔记11
连接MySQL mysql_connect(servername,username,password); 面向对象: <?php $servername = "localhost&qu ...
- PHP全栈学习笔记9
php的会话控制,什么是会话控制,http等. 什么是会话控制思想,http协议. cookie 和 session http是超文本传输协议,是网络上最广泛的一种网络协议. http最大特点是无连接 ...
- PHP全栈学习笔记8
面向对象的基本概念,面向对象编程,oop,面向对象,面向对象的分析,面向对象的设计,面向对象的编程,什么是类. 类,属性和方法,类,对象,面向对象编程的三大特点.特点,封装性,继承性,多态性. 封装性 ...
- PHP全栈学习笔记7
图形图像处理技术,gd库的强大支持,PHP的图像可以是PHP的强项,PHP图形化类库,jpgraph是一款非常好用的强大的图形处理工具. 在PHP中加载GD库 gd官方网址下载: http://www ...
- PHP全栈学习笔记6
php能做什么,它是运行在服务器端的,web网站大部分数据都是存储在服务器上的,PHP就是用来处理这些存储在服务器的数据.跨平台,服务器可以是多种平台上的服务器,脚本语言,免费. wampserver ...
- PHP全栈学习笔记5
php与mysql数据库,PHP支持很多数据库,与mysql为牛逼组合,mysql数据库的基础知识的掌握是由必要的,要了解如何操作mysql数据库,数据表的方法. 什么是数据库,数据库能做什么,数据库 ...
- PHP全栈学习笔记4
php和JavaScript,掌握JavaScript基础,自定义函数,流程控制语句,事件,调用JavaScript脚本,在PHP中使用JavaScript. JavaScript是网景公司开发的,是 ...
随机推荐
- 找不到 blog.csdn.net 的服务器 DNS 地址
找不到 blog.csdn.net 的服务器 DNS 地址 csdn的博客用win7的电脑打不开是怎么回事?手机可以正常打开,csdn的bbs 下载什么的都可以正常使用. blog.csdn.net显 ...
- 超实用的JavaScript代码段 Item3 --图片轮播效果
图片轮播效果 图片尺寸 统一设置成:490*170px; 一.页面加载.获取整个容器.所有放数字索引的li及放图片列表的ul.定义放定时器的变量.存放当前索引的变量index 二.添加定时器,每隔2秒 ...
- 把一个机器上1天内新增的文件用rsync传送到另外一台机器
我的shell很菜,只好用shell和php结合来做 1.查找新增的文件,构造rsync的参数,把结果写入到log中 find /data/bmob/test/teststorage/data/ -m ...
- 用Java为Hyperledger Fabric(超级账本)开发区块链智能合约链代码之部署与运行示例代码
部署并运行 Java 链代码示例 您已经定义并启动了本地区块链网络,而且已构建 Java shim 客户端 JAR 并安装到本地 Maven 存储库中,现在已准备好在之前下载的 Hyperledger ...
- MVC下 把数据库中的byte[]值保存成图片,并显示在view页面
MVC下 把数据库中的byte[]值转成图片,并显示在view页面 controller中的action方法 //显示图片[AllowAnonymous]public ActionResult Sho ...
- [Poi2014]FarmCraft 树状dp
对于每个点,处理出走完其子树所需要的时间和其子树完全下载完软件的时间 易证,对于每个点的所有子节点,一定优先选择差值大的来给后面的时间 树规+贪心. #include<cstdio> #i ...
- Java IO--字符流--BufferedReader和BufferedWriter
从昨天开始没事情干时,决定梳理梳理Java IO流,因为觉得太混乱这个东西,妈的,咋就这么多类型,想累死谁啊,这里并不是埋怨创造者,而是气自己看着看着老跑偏,实在看不进去,太多了,想睡觉,所以现在决定 ...
- 构建apache web 服务器
一.Apache服务器工作模式 1.Prefork模式:Prefork MPM使用多个子进程,每个子进程只有一个线程,每个进程在某个确定的时间只能维护一个连接 2.Worker模式: Worker M ...
- 【SAP HANA】SAP HANA开篇(1)
有幸当前工作能够接触到SAP S/4,能够接触到史上无敌的HANA内存数据库.HANA的技术我就不多讲了,感兴趣的人可以去百度一下.当然,有人想在本机安装HANA来学习,但前提是你得有128G内存以上 ...
- ASP.NET Core 实战:构建带有版本控制的 API 接口
一.前言 在上一篇的文章中,主要是搭建了我们的开发环境,同时创建了我们的项目模板框架.在整个前后端分离的项目中,后端的 API 接口至关重要,它是前端与后端之间进行沟通的媒介,如何构建一个 “好用” ...