二、填空
- substr_replace(‘要操作的字符串’,‘新串’,start[,length])
- 作用:替换指定的串,而不是关键字
- 返回值:不确定的数据类型
- start:
- 0 从第一个字符开始
- 正数:从字符串的第几个位置开始
- 负数:从字符串的倒数第几个位置开始
- length:默认整个串,负数:把最后几个替换掉
$str = "what are you doing?";
$new_str = "搞事情";
echo substr_replace($str,$new_str,0),"<br/>";
echo substr_replace($str,$new_str,3),"<br/>";
echo substr_replace($str,$new_str,-6),"<br/>";
结果:
搞事情
wha搞事情
what are you 搞事情
-
explode(‘分割符’,‘待分割字符串’ [,limit])
- 作用:分割字符串
- 返回值:数组类型
- limit:数组元素个数的限制,剩余的全部原样输出
- 0 1 算1
- 负数 是除了最后几个不是数组的元素,其他的都是
-
implode(‘连接符’,‘待链接的字符串’)
- 作用:按指定连接符,把数组链接成一个字符串
- 返回值:一个字符串
$str = "php@java@python@html";
$str_ary = explode("@", $str, 1);
print_r($str_ary);
echo "<br/>";
$arry = implode("@", $str_ary);
echo $arry, "<br/>", var_dump($arry);
// Array ( [0] => php@java@python@html )
// php@java@python@html
// string(20) "php@java@python@html"
- str_ireplace(‘old’,‘new’,‘要操作的字符串’[,int &count])
- 作用:替换关键字
- 返回值:不确定的数据类型
- old:要替换的关键字 可以用数组来指定多个关键字
- new:要替换新值
- [int &count]:要替换的数量
- 不区分大小写,str_replace()区分大小写
$str = "Php@java@python@html";
$ary = array('p','v');
echo str_ireplace($ary,'x',$str);
结果: xhx@jaxa@xython@html
- strftime(format [,时间戳])
- 作用:返回指定 format 的时间
- 返回值:字符串类型
echo strftime("%b %d %Y %X");
结果:
Dec 26 2019 11:16:02
- $_SERVER(‘SERVER_ADDR’)
- 作用:获取当前脚本运行的ip地址
echo $_SERVER['SERVER_ADDR'];
结果:
::1
::1说明你的电脑开启了ipv6支持,这是ipv6下的本地回环地址(127.0.0.1)的表示。
因为你访问的时候用的是localhost访问的
- substr(‘要操作的字符’, strat [,length] )
- 作用:截取字符串
- 返回值:字符串类型
- start:从哪个索引开始 --如果是负数表示:从倒数第几个开始
- length:截取的长度 --如果是负数表示:截取到倒数第几个(取不到)
$str = "123456789";
$sub_str = substr($str,-5,5);
echo $sub_str;
结果:
56789
简答题
1.面向对象的三个特性
- 封装
将数据和对数据的操作封装在一起,通过抽象(即实例)中抽取出共同的性质形成一般的概念,只要保留与外部的联系,对于开发人员知道如何使用即可,不需要去关系如何实现的。 - 继承
子类可以继承父类的属性和行为,同时又可以添加子类独有的数据和数据上的操作 - 多态
可以对方法进行重载和重写,一个函数名有着多种功能
2.each() 函数作用
返回当前元素的键和值,并将内部指针向前移动,如果指针超越了数组范围将会返回false
键备份两份,值备份两份
比如:
$people = array("Bill", "Steve", "Mark", "David");
print_r (each($people));
结果:
Array ( [1] => Bill [value] => Bill [0] => 0 [key] => 0 )
3.变量赋值和引用赋值的区别(略)
4. 单引号和双引号区别
1.单引号执行速度比双引号执行速度快
2.单引号不会解析变量,只会把变量当成串输出,双引号会把变量的值给解析出来
3.单引号只能转义 ’ 和 \ 其他的不行,双引号确都可以
5.数组常用的指针函数
- current() 函数返回数组中的当前元素的值。
- prev() 将内部指针指向数组中的上一个元素,并输出。
- next() 将内部指针指向数组中的下一个元素,并输出。
- end() 将内部指针指向数组中的最后一个元素,并输出。
- reset() 将内部指针指向数组中的第一个元素,并输出。
- each() 返回当前元素的键和值,并将内部指针向前移动
6.textarea 的warp属性
soft :当在表单中提交时,textarea 中的文本不包含换行符号。默认值。
hard :当在表单中提交时,textarea 中的文本换行(包含换行符)。
当使用 “hard” 时,必须规定 cols 属性。
7.正则构成、如何取消贪婪模式
- 正则构成
-
原子(普通字符:a-z A-Z 0-9 、原子表、转义字符)
-
元字符(有特殊功能的字符,如:# 、*)
-
模式修正符(系统内置部分字符 i、m、S、U …)
-
用 ?
取消贪婪模式
$reg1 = '/a+/';
$str = 'aaaaaaaaaaa';
$num1 = preg_match_all($reg1, $str);
echo $num1, "<br/>";
$reg2 = '/a+?/';
$num2 = preg_match_all($reg2, $str);
echo $num2, "<br/>";
结果:
1
11
8.
- preg_match_all(‘正则’, ‘被匹配的字符串’ [,array matches])
- 作用:按照正则去匹配字符串
- 返回值:返回匹配成功的次数
- 如果有matches 那么每次匹配的结果都将被存储到数组matches中
- perg_quote(‘str1’ [,str2])
- 作用:将str1中所有特殊字符进行转义
- 返回值:被转义后的字符串
- 如果有str2 str2中的特殊字符也会被转义掉
- preg_replace(‘正则’,‘new’,‘被操作的字符串’ [,limit])
- 作用:替换被正则匹配成功的字符/串
- 返回值:字符串
- 有limit 可以限制替换的次数
9. cookie 删除的方法
- setcookie() 设置过期时间
- 在浏览器中清除cookie
10. cookie功能
1.可以记录访客的某些信息,如 访问的网页次数,时间,用户名,账号密码
2.在页面之间传递变量, 如:可以用setcookie(‘name’,‘xxx’) 设置cookie 变量name,用$_cookie[‘name’] 把变量传递给页面
3.可以查看internet存储在cookies临时文件夹中,以后提高浏览速度
12 . 使用session的步骤
- 启动会话 session_start()
- 注册会话 $_SESSION[‘session变量’] = value
- 使用会话 $_SESSION[‘session_name’]
- 删除会话 unset($_SESSION[‘session变量’] )
13. 多态的两种形式
- 重载:函数名相同,参数不同(类型或者个数不同)
- 从写:除了方法体不一样 函数名、参数、返回类型、权限、等都必须相同
14. 什么封装?封装又称为什么?又什么优点?
将数据和对数据的操作封装在一起,通过抽象(即实例)中抽取出共同的性质形成一般的概念,又称为数据隐藏,只要保留与外部的联系,对于开发人员知道如何使用即可,不需要去关系如何实现的。
五、
1.代码实例
$user = $_POST["username"];
if(!isset($_COOKIE["visit_user"])){ // 检查这个 名字为 visit_user 的cookie变量是否设置
setcookie("visit_user");
echo "$user".'你是第一次访问本站';
echo "<br/>";
}else{
setcookie('visit_user',date("y-m-d H:i:s"),time()+60*60); // date作用是记录你上次访问网站的时间
echo "您上次访问的时间为:".$_COOKIE["visit_user"];
echo "<br>";
}
echo "您本次访问本网站的时间为:".date("y-m-d H:i:s");
代码实例
<form action="check_remember.php" method="POST">
账号:<input type="text" name="username"><br />
密码:<input type="text" name="pwd"><br />
记住账号密码:<input type="checkbox" name="remember">
<input type="submit" value="登录">
</form>
<?php
if(isset($_COOKIE['name'])&&isset($_COOKIE['pwd'])){
$user=$_COOKIE['name'];
$pwd= $_COOKIE['pwd'];
echo "<script>
var input = document.getElementsByTagName('input')
input[0].setAttribute('value',$user)
input[1].setAttribute('value',$pwd)
</script>";
$user = $_POST["username"];
$pwd = $_POST['pwd'];
if(isset($_POST['remember']) && $_POST['remember']=='on'){
setcookie('name',$user);
setcookie('pwd',$pwd);
}
echo "用户名:"."$user".", 密码:"."$pwd","<br/>";
echo '<a href="remember.php">返回</a>';
}
六、
1.
class human{
public $name;
public $age;
function __construct($name,$age)
{
$this->name = $name;
$this->age = $age;
}
public function say(){
echo "我叫".$this->name."今年".$this->age."岁。";
}
}
class teacher extends human{
public $subject;
function __construct($name,$age,$subject)
{
$this->name = $name;
$this->age = $age;
$this->subject = $subject;
}
public function teach(){
echo "我讲授课程".$this->subject;
}
}
$t1 = new teacher('李四',42,'计算机');
$t1->say();
$t1->teach();
结果:
我叫李四今年42岁。我讲授课程计算机
2 3 4 和1一样略
接口:php 和 java 一样 接口中只能由常量和抽象方法
interface Singer
{
function sing();
}
class Student implements Singer
{
private $sName;
function getSname()
{
echo $this->sName;
}
function sing()
{
echo "my name is" . $this->sName . ",I am singing...";
}
function __construct($name)
{
$this->sName = $name;
}
function study()
{
echo "my name is" . $this->sName . "I am a studing....";
}
}
$s1 = new Student('Jerrt');
$s1->sing();
$s1->study();
login.php
<form action="checklog.php" method="post">
账号:<input type="text" name="user"><br/>
密码:<input type="password" name="pwd"><br/>
<input type="submit" value="登录">
</form>
checklog.php
$user = $_POST['user'];
$pwd = $_POST['pwd'];
if($user==='admin' && $pwd==='123'){
session_start(); // 开启会话
$_SESSION['user']=$user; // 注册会话
$_SESSION['pwd']=$pwd;
header("Location:index.php"); // 页面跳转用的
}else{
header("Location:login.php");
}
index.php
session_start(); //必须先开启会话
//使用会话
if($_SESSION['user']==''){
header("Location:login.php");
}else{
echo "用户:".$_SESSION['user']."欢迎您";
}
login.php
<form action="checklog.php" method="post">
账号:<input type="text" name="user"><br/>
密码:<input type="password" name="pwd"><br/>
<input type="submit" value="登录">
</form>
checklog.php
$user = $_POST['user'];
$pwd = $_POST['pwd'];
if($user==='admin' && $pwd==='123'){
$isLogin = 1;
setcookie('user',$user,time()+60*60*24);
setcookie('isLogin',$isLogin,time()+60*60*24);
header("Location:index.php");
}else{
header("Location:login.php");
}
index.php
if(isset($_COOKIE['isLogin'])&&$_COOKIE['isLogin']==1){
echo "用户:".$_COOKIE['user']."欢迎您";
}else{
header("Location:login.php");
}