二十一·写出数据类型(int char varchar datetime text)的意思,varchar 和char的区别?

int数字类型,char固定长度字符串,varchar实际(可变)长度字符串,datetime日期时间类型,text文本类型
char长度是固定的,不管你存储的数据是多少他都会都固定的长度。而varchar则处可变长度但他要在总长度上加1字符,这个用来存储位置,
由于某种原因char 固定长度,所以在处理速度上要比varchar快速很多,但是对费存储空间,所以对存储不大,但在速度上有要求的可以使用char类型,反之可以用varchar类型来实例

二十二·MyISAM和InnoDB的基本区别?

innoDB支持事务机制、存储过程、行级锁定,MyISAM不支持,
MyISAM在增删改查中速度快于InnoDB,作为使用MySQL的用户角度出发,Innodb和MyISAM都是比较喜欢的,如果数据库平台要达到需求:99.9%的稳定性,方便的扩展性和高可用性来说的话,MyISAM绝对是首选,
InnoDB不支持FULLTEXT类型的索引,
InnoDB 中不保存表的具体行数,也就是说,执行select count(*) from table时,InnoDB要扫描一遍整个表来计算有多少行,但是MyISAM只要简单的读出保存好的行数即可

二十三·客户端禁用了cookie,怎么实现session技术共享多个页面?

方法一.通过session获取session_id进行传值:

a.php页面(设置session)
session_start();
header("Content-type:text/html;charset=utf-8");
$user = $_SESSION['name'] = 'zhangsan';
echo $sid = session_id();
$sname = session_name();
echo "";
print_r($user);
echo "";
echo "cookie";

b.php页面(接收session)
if(isset($_GET['PHPSESSID'])){
    session_id($_GET['PHPSESSID']);
}
session_start();
echo session_id();
echo "";
print_r($_SESSION);
echo "";

方法二.或者php.ini 配置选项,里面有一个session.use_trans_sid=0设置为1
(在herf action header会自动添加SID,但是js跳转不会自动增加); 重启apache可以生效

二十四·isset()和empty()的区别,对不同数据的判断结果?
isset()是判断变量是否存在,是否定义
empty()是判断变量的值是否为空

二十五·如何在页面之间传递变量?
get,post,ajax,curl,cookie,session

二十六·写出匹配url的正则表达式?

$url = "https://www.baidu.com/index.php?id=1&name=user1";
$reg = "/(http|ftp|https):[\/]{2}[a-z]+[.]{1}[a-z\d\-]+[.]{1}[a-z\d]*[\/]*[A-Za-z\d]*[\/]*[A-Za-z\d]* /";
echo preg_match($reg,$url);

二十七·请写出常见的排序算法,并用php实现冒泡排序,将数组$a=array()按照从小到大的方式进行排序?

function mysort($arr){
    for($i=0;$i<count($arr)-1;$i++){
        for($j=0;$j