PHP全栈学习笔记16

image.png

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

修改端口号

image.png

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

image.png

php学习

image.png

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

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

image.png

image.png

image.png

image.png

image.png

image.png

检入

image.png

自定义函数模板

image.png

image.png

开发环境:wamp3.06 + Zend studio 12
调试配置

打开php配置文件php.ini

image.png

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

image.png

image.png

允许访问服务器

image.png

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

image.png

image.png

image.png

zend Studio 中设置

image.png

image.png

image.png

image.png

Servers
配置local Apache HTTP Server

image.png

image.png

image.png

配置exe文件
image.png

image.png

配置debug

image.png

修改Document Root为

image.png

image.png

image.png

配置默认字符集

image.png

配置默认字体大小

image.png

image.png

<!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高级教程完结!

结言

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

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

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

image

image

posted @ 2019-04-29 09:47  达达前端  阅读(329)  评论(0编辑  收藏  举报