php基础知识(七)

M函数

实例化系统模型

  

I函数

过滤前台传递过来的数据,防止xss攻击

 

xss攻击?

自动验证是什么时候被执行的

调用模型的create方法的时候会被调用自动验证,如果不传递参数,会用I函数获取传递过来的数据

 

伪静态的实际操作

1)加载伪静态重写模块

2)允许所有覆盖

3)网站根目录下,创建一个.htaccess文件

 

LoadModule Rewrite_module

Allow all

<ifModule rewrite_module>

   RewriteEngine on

   RewriteRule index.html

</ifModule>

如何选择定长还是变长的字符串

Char varchar的区别

定长:

      着重于固定的长度,如手机,电话,身份证号

 

区别在于,已经固定好的宽度,免去了判断宽度的大小,效率会高

对于经常变更的数据,定长不容易有碎片

Varchar(10)是什么意思?最大能存多少?

Varchar最大能存65530个字符,varchar(10)表示最大能存10个字符的长度,并且字符是变长的。

Utf8 && gbk 分别能存多少个字节

Utf8占用3个字节,有些超大字符,占4个字节

 

Gbk的汉字占用2个字节

Int(4) 和 int(10) 有什么区别

Int(M)里的M是显示的宽度,和存储没关系。显示的宽度只是用于显示,并不能限制取值范围和占用的空间。

不论是int(3)还是int(4),它在数据库里存储的都是4个字节的长度。

在使用int(3)的时候,如果输入的是10,会默认存为010;

Int(10)和int(11)有什么区别,应该就是显示长度的区别

Php修改http响应

跳转

Header(location:xxx.php)

 

刷新

Header(refresh:3 ; url=xxxxx)

 

发送图片

Header(content-type:image/jpg)

 

下载

Header(content-type:text/html;charset=utf-8)

Header(content-type:application/octet-stream)

Header(content-disposition:attachment;filement=美人 )

Session数据到底有什么

 

Session的机制

 

Session的清除

 

什么时候用session,什么时候用cookie

 

Setcookie设置cookie(设置,访问)

 

Cookie生命周期

 

Cookie生命周期的使用

 

Cookie作用范围

 

Cookie跨域

 

Cookie特性

 

程序设计要求

内聚性强,耦合性弱

聚:集中,专门围绕着一个功能

耦:联系,与外部的联系弱,不受外部环境的影响

对于一个框架学习的理解

 

无限极分类怎么实现

首先,表中应该有pid的字段,通过这个字段展现出一个层级的关系,再使用递归函数,将数据聚合在一起 (id,name,pid)

 

还可以通过字段 path( 0-1 , 0-1-2 , 0-1-2-3 )

 

Json,xml的理解

它们都是数据传输的格式

Xml严格规范,安全性高;json数据量大,结构简单

在实际应用中,使用xml格式,传输合同的数据到第三方

使用json格式,ajax无刷新,把后台数据返回给到前端

数据结构

双向链表

映射

数组

队列

集合

Php扩展的名称

curl

ftp

iconv

json

mbstring

mysql

mysqli

mysqlnd

openssl

pcntl

pdo

pdo_mysql

redis

session

sockets

xml

获取文件的行数

wc -l filename

查找文件中包含hello的行

wc -w  filename

把一个文件的内容添加到另一个文件的末尾

cat  22  >>  11

>>追加的意思

查看所有的用户

cat  /etc/passwd

查找文件中包含hello的行

grep hello filename

排序方法

冒泡排序

快速排序

插入排序

选择排序

快速排序的实现代码以及原理

<?php

$arr = [33, 24, 8, 21, 2, 23, 3, 32, 16];

function quickSort($arr)
{
    $count = count($arr);

    if ($count < 2) {
        return $arr;
    }

    $leftArray = $rightArray = array();
    $middle = $arr[0];// 基准值

    for ($i = 1; $i < $count; $i++) {
        // 小于基准值,存入左边;大于基准值,存入右边
        if ($arr[$i] < $middle) {
            $leftArray[] = $arr[$i];
        } else {
            $rightArray[] = $arr[$i];
        }
    }

    $leftArray = quickSort($leftArray);
    $rightArray = quickSort($rightArray);

    return array_merge($leftArray, array($middle), $rightArray);
    // 倒序
    // return array_merge($rightArray, array($middle), $leftArray);
}

冒泡排序的实现代码以及原理

// 冒泡排序
function bubble_sort($arr)
{
    $len = count($arr);
    for ($i = 0; $i < $len -1; $i++) {//循环对比的轮数
        for ($j = 0; $j < $len - $i - 1; $j++) {//当前轮相邻元素循环对比
            if ($arr[$j] > $arr[$j + 1]) {//如果前边的大于后边的
                $tmp = $arr[$j];//交换数据
                $arr[$j] = $arr[$j + 1];
                $arr[$j + 1] = $tmp;
            }
        }
    }
    return $arr;
}
$arr = [5,2,4,7,9,4,2,6,8,3];
print_r(bubble_sort($arr));

Get post的数据哪里来的

 

$_SERVER的数据哪里来的,从哪里获取,怎么知道远程服务端的ip

 

递归函数的理解

(1-100的累加计算)

Function test( $n ){

    echo $n . ;

 

    If( $n >0 ){

         test( $n-1 );

     }else{

         echo <---->;

     }

 

      echo $n . ;

   }

 

Test(10);

 

10 9 8 7 6 5 4 3 2 1 <----> 1 2 3 4 5 6 7 8 9 10

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值