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数组,常量,遍历等的更多相关文章

  1. for+next()实现数组的遍历及while list each 的使用

    //要求使用for循环语句来完成该数组的遍历//输出每一项的键名和对应值:    $a = array(           'a' => 34,           5 => 51,  ...

  2. jQuery数组的遍历 function的加载

    加载函数时会被覆盖在jQuery中给提供的方案有三种形式 js中只能绑定一个方法 如果多次绑定后者会覆盖前者 最常用的一种 在jQuery中数组的遍历 使用map遍历数组  会返回一个新的数组  如果 ...

  3. PHP定义数组常量

    最先想到的方法是这样: define('SIGN_CODE', array('9df512','59gf1g','5eg7h1','g1agf5','f5e151','g51gfr','a5481s' ...

  4. 手写js代码(一)javascript数组循环遍历之forEach

    注:原文地址http://blog.csdn.net/oscar999/article/details/8671546 我这里是仿照学习! 1.js的数组循环遍历 ①数组的遍历首先想到的是for()循 ...

  5. 初识Javascript.03 -- switch、自增、while循环、for、break、continue、数组、遍历数组、合并数组concat

    除了注意大小写,别的木啥了 Switch语句 Switch(变量){ case 1: 如果变量和1的值相同,执行该处代码 break; case 2: 如果变量和2的值相同,执行该处代码 break; ...

  6. PHP二维关联数组的遍历方式

    采用foreach循环对二维索引数组进行遍历,相对来讲速度更快,效率更高,foreach循环是PHP中专门用来循环数组的.实例也相对简单,多加练习,想清楚程序运行逻辑即可. <?php $arr ...

  7. javascript:Json 和数组的遍历

    首先看代码示例var json={a:1,b:2,c:3}; //json var array={1,2,3}; //数组 alert(json.a); //弹出1 或alert(json['a']) ...

  8. java 数组声明定义 数组内存分配 数组初始化 数组引用 数组的遍历

    一,数组的定义 Java 中定义数组的语法有两种: 1. type arrayName[]; 2. type[] arrayName;type 为Java中的任意数据类型,包括基本类型和组合类型,ar ...

  9. javascript(基础)_对数组的遍历方法总结(find, findIndex, forEach,)

    一.前言                                                                                                ...

  10. 数组的三种声明方式总结、多维数组的遍历、Arrays类的常用方法总结

    1. 数组的三种声明方式 public class WhatEver { public static void main(String[] args) { //第一种 例: String[] test ...

随机推荐

  1. 【转】SOA架构和微服务架构的区别

    SOA架构和微服务架构的区别 https://blog.csdn.net/zpoison/article/details/80729052

  2. html网页调用本地exe程序的实现方法(转)

    https://blog.csdn.net/ilovecr7/article/details/46803711 最近在做一个项目,要什么网页里调exe...开始以为不能实现,后来想想很多就跟淘宝网页上 ...

  3. ResponseBody和文件上传

    SpringMVC默认使用MappingJacksonHttpMessageConverter对json数据进行转换 <dependency> <groupId>com.fas ...

  4. [转自baidu]修正古人五行,《七行说》之提出

    一.论原五行相生.相克关系不妥之处: 祖国医学原“五行说”即金.木.水.火.土.在五行学说中说相生规律为:金生水:水生木:木生火:火生土:土生金.相克规律为:火克金:金克木:木克土:土克水:水克火.这 ...

  5. knuth洗牌算法

    首先来思考一个问题: 设计一个公平的洗牌算法 1. 看问题,洗牌,显然是一个随机算法了.随机算法还不简单?随机呗.把所有牌放到一个数组中,每次取两张牌交换位置,随机 k 次即可. 如果你的答案是这样, ...

  6. [LeetCode] 60. Permutation Sequence 序列排序

    The set [1,2,3,…,n] contains a total of n! unique permutations. By listing and labeling all of the p ...

  7. consul集群搭建以及ACL配置

    由于时间匆忙,要是有什么地方没有写对的,请大佬指正,谢谢.文章有点水,大佬勿喷这篇博客不回去深度的讲解consul中的一些知识,主要分享的我在使用的时候的一些操作和遇见的问题以及解决办法.当然有些东西 ...

  8. 【VS开发】VS2015没修改源文件也导致重新编译的解决办法

    在使用VS2010编译C++程序的时候,每次修改工程中的某一个文件,点击"生成-仅用于项目-仅生成**"时,往往都是整个工程都需要重新编译一遍.由于这个工程代码量太大,每次编译完成 ...

  9. Centos7挂载新硬盘

    1.查看系统是否检测到新的硬盘设备 ls /dev/ |grep sd linux 中所有外设都会在这个目录下,对应一个文件,其中第一块硬盘是sda,第二块硬盘是sdb,第三块硬盘是sdc.其中sda ...

  10. LeetCode 686. 重复叠加字符串匹配(Repeated String Match)

    686. 重复叠加字符串匹配 686. Repeated String Match 题目描述 给定两个字符串 A 和 B,寻找重复叠加字符串 A 的最小次数,使得字符串 B 成为叠加后的字符串 A 的 ...