<?php
$fileName = "php大师.test.php";
//补充程序,显示文件名(不包括扩展名)
$start = strrpos($fileName, ".");
$newStr = substr($fileName,0, $start);
var_dump ( $newStr );
?>
<?php
for($i=100;$i<1000;$i++){
if(($i*$i)%1000==$i)
{
echo $i;
echo "<br/>";
}
}
?>
<?php
$x = "hello";
switch ($x) {
case 1 :
echo "Number 1";
break;
case 2 :
echo "Number 2";
break;
case "hello" :
echo "hello";
break;
default :
echo "No number between 1 and 3";
}
?>
<?php
$students = array(array("name"=>"张三","age"=>25,"height"=>180),array("name"=>"李四","age"=>22,"height"=>170));
echo $students[0]["name"];
echo "<br/>";
echo $students[1]["name"];
?>
<?php
// 显示右边n个字符
$n = 5;
$oldStr = "dsfasfasf";
$rightStr = subStr ( $oldStr, strlen($oldStr) - $n );
var_dump ( $rightStr );
?>
<html> <body>
<form action="welcome.php" method="post">
 Name: <input type="text" name="name" />
 Age: <input type="text" name="age" />
 <input type="submit" />
</form>
</body> </html>
好好学习,天天向上
<br/>
<?php
echo "hello world";
define("ABC",1000);
var_dump(defined("ABC")); echo "<br/>";
echo constant("ABC"); echo PHP_OS;
echo "<br/>";
echo PHP_VERSION;
echo "<br/>";
echo __FILE__;
define('NAME','php');
define('NAME','linux');
echo NAME;
?>
<img src="/test/a.jpg"></img>

修改端口号

通过网络命令netstat –aon 找到进程号

php学习

常量一般是大写字母构成,常量只能定义一次

bool define ( string name, mixed value [, bool case_insensitive] )
bool defined ( string name ) <?php
echo "中文测试<br/>";
print "hello world!";
echo "<br/>";
echo "<img src='/test/a.jpg'></img>";
define("PI",3.14);
var_dump(defined("Pi"));
echo PHP_OS;
echo "<br/>";
echo PHP_VERSION;
echo "<br/>";
echo __FILE__;
?>

常量、变量的命名规则:

以字母、下划线开头,后接字母、数字、下划线

以$打头命名变量,变量要先赋值后使用

同一个变量,即可以存储数字也可以存储字符串,也就是可以存储任意类型的数据

变量不用指定数据类型,但必须赋值后才能使用

求字符串的长度:int strlen ( string 字符名 )

查找第一次出现的子串位置:int strpos

查找最后一次出现的子串位置:int strrpos

求字符串右边n个字符构成的子串

substr(原串,-$n) 或者:substr(原串,strlen(原串)-$n)

显示去掉扩展名的文件名

$dotpos = strpos($fileName,".");
echo substr($fileName,0, $dotpos);
$y = $x++ 相当于{$y=$x; $x=$x+1;}
$y = $x-- 相当于{$y=$x; $x=$x-1;}
$y = ++$x 相当于{$x=$x+1; $y=$x;}
$y = $x-- 相当于{$x=$x-1; $y=$x;}
对于表达式:A && B,如果A为假,则不再计算表示式B的值
对于表达式:A || B,如果A为真,则不再计算表示式B的值

date函数用于将日期格式化为指定格式

构造数组:$names = array("a","b","c");
访问数组元素:$names[0]、 $names[1]、 $names[2].

函数explode,用于将字符串分割成多个子串构成的数组

关联数组

方法: “键”=>值

数据类型

Boolean型

integer型

浮点型

字符串型

伪类型

mixed、number、void、callback

<?php
// 求1!+2!....+10! // 声明一个控制变量,初始化
$i = 1;
// 声明一个存储和的变量
$sum = 0;
// 声明一个变量存储n!,初始化化为1;
$rank = 1;
// 计算$i的阶乘,计算完马上累加科
while ( $i <= 10 ) {
// 计算$i!= ($i-1)!*$i
$rank *= $i;
// 累加
$sum += $rank;
// 改变循环变量值
$i ++;
}
echo $sum . "<br/>"; // 求1!+2!....+10!
$x = 1;
$sum2 = 0;
while ( $x <= 10 ) {
// 计算$x!
$rank2 = 1;
$y = 1;
while ( $y <= $x ) {
$rank2 *= $y;
$y ++;
}
// 累加
$sum2 += $rank2;
// 改变循环变量值
$x ++;
}
echo $sum2 . "<br/>"; // 求1.....100之间素数
// 8 = 2*4 7是素数,因为7/2 7/3 7/4....7/6,7不能被整除
for($i = 2; $i <= 100; $i ++) {
// 假设是素数
$isPrime = true;
//除数不用到$i-1,到sqrt($i)
for($j = 2; $j <= sqrt($i); $j ++) {
if ($i % $j == 0) {
$isPrime = false;
break;
}
}
//验证假设有没有被修改
if ($isPrime == true) {
echo $i . " ";
}
} $arr=array("one", "two", "three");
//依次取出数组每一个元素放到$aa
foreach ($arr as $aa){
echo $aa. " ";
} echo "<br/>";
// 求1!+2!....+10!
function Rank($n){
$rank = 1;
for($i=1;$i<=$n;$i++){
$rank *= $i;
}
return $rank;
}
$sum = 0;
for($i=1;$i<=10;$i++){
$sum += Rank($i);
}
echo $sum;
?>

检入

自定义函数模板

开发环境:wamp3.06 + Zend studio 12

调试配置

打开php配置文件php.ini

去掉xdebug前的所有注释符号‘;’,也就是说使用wamp自带的调试器

允许访问服务器

修改httpd.conf,允许访问服务器

zend Studio 中设置

Servers

配置local Apache HTTP Server

配置exe文件

配置debug

修改Document Root为

配置默认字符集

配置默认字体大小

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>
<body>
<?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 {
if (file_exists ( "upload/" . $_FILES ["file"] ["name"] )) {
echo $_FILES ["file"] ["name"] . " already exists. ";
} else {
$newname = iconv ( "utf-8", "gb2312", $_FILES ["file"] ["name"] );
move_uploaded_file ( $_FILES ["file"] ["tmp_name"], "upload/" . $newname );
// move_uploaded_file($_FILES["file"]["tmp_name"], "upload/"
// .$_FILES["file"]["name"]);
echo "Stored in: " . "upload/" . $_FILES ["file"] ["name"];
}
// }
// } else { echo "Invalid file"; }
?>
</body>
</html>
<html>
<body>
<?php
$week = array("星期日","星期一","星期二","星期三","星期四","星期五","星期六");
$day = date("w");
$mydate = date("你好! 现在是Y年n月j日H点i分,$week[$day]");
echo $mydate;
?>
</body>
</html>
<?php
session_start();
if(isset($_SESSION['user'])){
header("Location:main.php");//自动跳转到main.php
}else{
//获取用户输入
$username = $_POST [ 'username' ];
$passcode = $_POST [ 'passcode' ];
$cookie = $_POST [ 'cookie' ];
//判断用户是否存在,密码是否正确
if ($username =="hhh" && $passcode == "12345")
{
$_SESSION['user']=$username;
header("Location:main.php" );//自动跳转到main.php
}
else{
echo "用户名或密码错误";
}
}
?>
<?php header('Content-type:text/html;charset=utf-8'); ?>
<html>
<head>
<meta http-equiv= "Content-Type" content=" text/html; charset=UTF-8">
</head>
<body>
<?php
if (isset ( $_COOKIE ["username"] )) {
header ( "location: main1.php" );
} else {
$username = $_POST ['username'];
$passcode = $_POST ['passcode'];
$cookie = $_POST ['cookie'];
if ($username == "hhh" && $passcode == "12345") {
switch ($cookie)
{
case 0 :
setcookie ( "username", $username );
break;
case 1 :
setcookie ( "username", $username, time () + 24 * 60 * 60 );
break;
case 2 :
setcookie ( "username", $username, time () + 30 * 24 * 60 * 60 );
break;
case 3 :
setcookie ( "username", $username, time () + 365 * 24 * 60 * 60 );
break;
}
header ( "location: main.php" );
} else {
echo "";
}
}
?>
</body>
</html>

发送邮箱

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>
<body>
<html>
<body>
<?php
if (isset($_REQUEST['emailto']))
{
$emailto = $_REQUEST['emailto'];
$subject = $_REQUEST['subject'];
$message = $_REQUEST['message'];
if(mail($emailto,$subject,$message,"From:23232323@hzj.com")){
echo "谢谢使用本程序!";
}else{
echo "未能发送成功!";
}
}else{
echo "<form method='post' action='sendemail.php'>EmailTo:<input name='emailto' 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 Date() 函数可把时间戳格式化为可读性更好的日期和时间

语法

date(format,timestamp)
d - 月中的天 (01-31)
m - 当前月,以数字计 (01-12)
Y - 当前的年(四位数)
<?php
echo date("Y/m/d");
echo "<br />";
echo date("Y.m.d");
echo "<br />";
echo date("Y-m-d");
?>

PHP 引用文件

include() 或 require()

它们处理错误的方式不同

include() 函数会生成一个警告

require() 函数会生成一个致命错误

PHP 文件处理

fopen ( string $filename , string $mode )

关闭文件

fclose() 函数用于关闭打开的文件

逐行读取文件

fgets() 函数用于从文件中逐行读取文件

PHP 文件上传

<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>

标签的 enctype 属性规定了在提交表单时要使用哪种内容类型。在表单需要二进制数据时,比如文件内容,请使用 “multipart/form-data”。

标签的 type=“file” 属性规定了应该把输入作为文件来处理。

PHP 的全局数组 $_FILES,存放了上传到服务器的文件的所有信息

$_FILES["file"]["name"] - 被上传文件的名称
$_FILES["file"]["type"] - 被上传文件的类型
$_FILES["file"]["size"] - 被上传文件的大小
$_FILES["file"]["tmp_name"] - 存储在服务器的文件的临时副本的名称
$_FILES["file"]["error"] - 由文件上传导致的错误代码

“upload_file.php”文件

<?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"];
} ?>

保存被上传的文件

<?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 {
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 header(‘Content-type: text/html; charset=gbk’);?>//放在php文档的头部
<meta http-equiv= "Content-Type" content=" text/html; charset=UTF-8">

编码的转换

string iconv ( string $in_charset , string $out_charset , string $str )

什么是 Cookie?

Cookies-在客户端保存信息

cookie 常用于识别用户。cookie 是服务器留在用户计算机中的小文件。每当相同的计算机通过浏览器请求页面时,它同时会发送 cookie。通过 PHP,您能够创建并取回 cookie 的值。

如何创建 cookie?

setcookie() 函数用于设置 cookie。

语法

setcookie(name, value, expire, path, domain);

如何删除 cookie?

<?php       // set the expiration date to one hour ago setcookie("user", "", time()-3600);
?>

Session-在服务器端保存用户信息

PHP session 变量用于存储有关用户会话的信息,或更改用户会话的设置。

Session 的工作机制是:为每个访问者创建一个唯一的 id (UID),并基于这个 UID 来存储变量。UID 存储在 cookie 中,亦或通过 URL 进行传导。

Session 生命周期

开始 session_start() 函数必须位于 标签之前

存储 Session 变量

使用 PHP $_SESSION 变量

<?php session_start(); $_SESSION['views']=1; ?>
<?php echo "Pageviews=". $_SESSION['views']; ?>

isset(变量): 判定一个变量是否已经设置。

unset() : 函数用于释放指定的 session 变量

session_destroy() 函数彻底终结 session

PHP mail() 函数

PHP mail() 函数用于从脚本中发送电子邮件

最简单的方式是发送一封文本 email

<?php
  $to = "someone@example.com";
  $subject = "Test mail";
  $message = "Hello! This is a simple email message.";
   $from = "someonelse@example.com";
  $headers = "From: $from";
  mail($to,$subject,$message,$headers);
   echo "Mail Sent.";
?>

mailform.php

<?php
if (isset($_REQUEST['email'])) {
   $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>";
} ?>

PHP 异常处理

主动抛出异常:

throw 异常对象;

捕获异常

 try {
  这是放可能产生异常的语句。
} catch(Exception $e)
{
 异常的处理语句;
}
<?php
foreach($_COOKIE as $key=>$value){
setCookie($key,"",time()-60);
}
echo "删除所有cookie!";

php高级教程完结!

结言

好了,欢迎在留言区留言,与大家分享你的经验和心得。

感谢你学习今天的内容,如果你觉得这篇文章对你有帮助的话,也欢迎把它分享给更多的朋友,感谢。

感谢!承蒙关照!您真诚的赞赏是我前进的最大动力!

PHP全栈学习笔记16的更多相关文章

  1. PHP全栈学习笔记18

    php基础知识,JavaScript,jQuery,ajax基础知识 linux基础知识,mysql数据库的基础与优化 程序设计,PHP框架基础知识,算法,逻辑思维,高并发 PHP基础知识 引用变量, ...

  2. python全栈学习笔记(二)网络基础之子网划分

    阅读目录 一.ip地址基本知识 1.1 ip地址的结构和分类 1.2 特殊ip地址 1.3 子网掩码 1.4 ip地址申请 二.子网划分 2.1 子网划分概念 2.2 c类子网划分初探 2.3 子网划 ...

  3. python全栈学习笔记(一)网络基础之网络协议篇

    阅读目录 一.操作系统基础 二.网络通信原理 2.1 互联网的本质就是一系列的网络协议 2.2 osi七层协议 2.3 tcp/ip五层模型讲解 2.3.1 物理层 2.3.2 数据链路层 2.3.3 ...

  4. PHP全栈学习笔记29

    前言 这一章主要讲一讲PHP的背景,优势,PHP的环境搭建,书写和调式简单的PHP代码,如何解决简单的PHP错误等. 目录结构 PHP简介 PHP是面向对象,指令式编程,设计者是 拉斯姆斯·勒多夫 出 ...

  5. PHP全栈学习笔记27

    数组概述,类型,声明,遍历,输出,获取数组中最后一个元素,删除重复数组,获取数组中指定元素的键值,排序,将数组中的元素合成字符串. 数组概述,数组是存储,管理和操作一组变量. 数组类型为一维数组,二维 ...

  6. PHP全栈学习笔记13

    php与ajax技术 web2.0的到来,ajax逐渐成为主流,什么是ajax,ajax的开发模式,优点,使用技术.(ajax概述,ajax使用的技术,需要注意的 问题,在PHP应用ajax技术的应用 ...

  7. PHP全栈学习笔记12

    php简介,php历史,php后端工程师职业前景,php技术方向,php后端工程师职业体系介绍. php是世界上使用最广泛的web开发语言,是超文本预处理器,是一种通用的开源脚本语言,语法吸收了c语言 ...

  8. PHP全栈学习笔记17

    phpmyadmin教程 管理页进入phpmyadmin 打开C:\wamp\apps\phpmyadmin3.5.1下的配置文件:config.inc 修改密码 创建与修改数据库.数据表 字段类型 ...

  9. PHP全栈学习笔记15

    PHP标记风格 PHP一共支持4种标记风格 <?php echo "这是XML风格的标记"; ?> 脚本风格 <script language="php ...

随机推荐

  1. sql server按符号截取字符串

    http://www.360doc.com/content/12/0626/13/1912775_220523992.shtml

  2. SQL注入简单介绍

    一.SQL注入概念   1.sql注入是一种将sql代码添加到输入参数中   2.传递到sql服务器解析并执行的一种攻击手法   举例:某个网站的用户名为name=‘admin’.执行时为select ...

  3. profile.go

    )         }()     }     return &prof }

  4. BZOJ_3132_上帝造题的七分钟_树状数组

    BZOJ_3132_上帝造题的七分钟_树状数组 Description “第一分钟,X说,要有矩阵,于是便有了一个里面写满了0的n×m矩阵. 第二分钟,L说,要能修改,于是便有了将左上角为(a,b), ...

  5. linux学习之路(2)

    1.输入输出重定向  输入重定向中用到的符号及其作用 命令 < 文件 将文件作为命令的标准输入 命令 << 分界符 从标准输入中读入,直到遇见分界符才停止 命令 < 文件 1 ...

  6. myeclipse maven tomcat插件 创建web工程

    自从有了云笔记,很久不写博客了.今天写了使用Freemarker静态化JSP页面,索性就发出来.初学,勿喷. 这篇文字以前放在云笔记里,当然里面有很多借鉴网络上的东西,而自己也使用Maven很久了,索 ...

  7. aes 128、192、256位,cbc、cfb、ecb、ofb、pcbc加密解密

    AES加解密总共有以下这些 算法/模式/填充 字节加密后数据长度 不满16字节加密后长度 AES/CBC/NoPadding 16 不支持 AES/CBC/PKCS5Padding 32 16 AES ...

  8. ToB蓝海的台阶-PaaS,SaaS技术详解

    前言 随着大量SaaS公司进入市场,我们看到颠覆性的软件服务以各种方式进入企业流程-从营销工具到支付系统.随着SaaS帮助优化业务流程,实现更流畅和自动化的运营,风险投资公司首先潜入池中寻找最优秀和最 ...

  9. php SESSION入库的实现

    session入库,就是重写session制机,在session的周期内,获得到session的数据并记录到数据库 Session默认是存放到服务器上的文件中,不方便管理,如果能把session存放到 ...

  10. 利用ATiny85制作BadUSB

    0x00.准备: ATiny85的板子 淘宝十元包邮.有两款,两款都可以,建议选择左边的,这样可以直接插入USB口,第二款也可以,不过需要一根Micro的数据线(旧款安卓手机使用的线). 电脑安装驱动 ...