<?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. 由HashMap哈希算法引出的求余%和与运算&转换问题

    1.引出问题 在前面讲解HashMap 的源码实现时,有如下几点: ①.初始容量为 1<<4,也就是24 = 16 ②.负载因子是0.75,当存入HashMap的元素占比超过整个容量的75 ...

  2. 7. 整合shiro,搭建粗粒度权限管理

    shiro是一个易用的权限管理框架,只需提供一个Realm即可在项目中使用,本文就将结合上一篇中搭建的权限模块.角色模块和用户模块来搭建一个粗粒度的权限管理系统,具体如下:1. 添加shiro依赖和与 ...

  3. 转[@SuppressWarnings详解]

    背景知识:       从JDK5开始提供名为Annotation(注释)的功能,它被定义为JSR-175规范.注释是以“@注释名”在代码中存在的,还可以添加一些参数 值,例如:@SuppressWa ...

  4. plugin.go 源码阅读

    , nil)             }             if c.client != nil {                 c.client.Close()             } ...

  5. java集合框架之LinkedList

    参考http://how2j.cn/k/collection/collection-linkedlist/370.html LinkedList 与 List接口 与ArrayList一样,Linke ...

  6. mybatis批量提交

    之前在做项目时,使用mybatis,批量执行sql,这里简单写下步骤 在配置数据库连接时,加入一个参数,例如 jdbc:mysql://127.0.0.1:3307/mvs-report?allowM ...

  7. redis结合自定义注解实现基于方法的注解缓存,及托底缓存的实现

    本次分享如何使用redis结合自定义注解实现基于方法的注解缓存,及托底缓存的实现思路    现在的互联网公司大多数都是以Redis作为缓存,使用缓存的优点就不赘述了,写这篇文章的目的就是想帮助同学们如 ...

  8. IOS-QQ第三方登录

    iOS QQ第三方登实现   我们经常会见到应用登陆的时候会有QQ,微信,微博等的第三方登陆 如图: 下面我们主要讲一下qq的第三方登陆如何实现 首先,到官网注册: http://wiki.conne ...

  9. python脚本对 mysql数据库进行增删改查操作

    # -*- coding: utf-8 -*-import pymysqlimport xlrd# import codecsconn = pymysql.connect(host='127.0.0. ...

  10. MySql-两阶段加锁协议

    此篇博客主要是讲述MySql(仅限innodb)的两阶段加锁(2PL)协议,而非两阶段提交(2PC)协议,区别如下: 2PL,两阶段加锁协议:主要用于单机事务中的一致性与隔离性. 2PC,两阶段提交协 ...