• PHP 常识


                        PHP常识

    1.谈谈你对MVC的认识,介绍几种目前比较流行的框架

      由Model(M),View(V),Cntroller(C) 组成的一种设计模式,Model 主要处理一些业务处理类,View是页面显示页,直接在浏览器输出,Controller是桥接M和V,由它收到V的请求,调用相应的model类再把结果返还给视图,右视图输出给用户。

     2.HTML表单中GET和POST提交方法的区别

      GET提交方式是http协议,把要提交的值附在url后面,因此这种方式保密性不是很好,且有长度限制,最长8192字节

      POST是实体数据,随着表单提交到服务器,比较安全,且长度限制由配置文件决定。

    3.请简述session和Cookies的区别

       SESSION:是存储用户信息的唯一全局变量,是在服务器端的预处理数组,存放的地方由PHP中的seesion_dir指定。

      COOKIE:是用来储存连续访问一个页面时使用,数据存在客户端。这两者都可以通过时间设置生存长短。

      默认情况下,session是基于cookie的,如果cookie被禁止必须向其他办法解决了。

    4.求两个日期的差数,例如20016-10-27 ~ 2016-11-27 的日期差数。

    $time1=mktime(0,0,0,10,27,2016);

    $time2=mktime(0,0,0,11,27,2016);

    $time3=$time2-$time1;

    相差秒数:$time3;

    相差分钟:$time3/60;

    相差小时:$time3/3600;

    相差天数:$time3/3600/24;

    相差周数:$time3/3600/24/7;

    5.写出如下程序输出的结果

    <?

    $test ='aaaa';

    $abc=&$test;

    unset($test);

    echo $abc;

    ?>

    输出:aaaa;

    6.请写出一个函数将1234567890转换成1,234,567,890 每3位用逗号隔开的形式。

    方法一:function new_number_formate($num)

    {

    $nnum =(string)$num;

    $str =strrev($nnum);

    $count = strlen($str);

    for($i=0;$i<$count;$i=$i+3){

    $nst.=Substr($str,$i,3).",";

    }

    echo strrev(rtrim($str,","));

    }

    方法二:利用系统函数:number_formate($num,0,".",",");

    7.有A(id,sex,par,c1,c2),b(id,age,c1,c2)两张表,现要求写一条SQL语句,将B中age>50的记录c1,c2,更新到A表中统一记录中的c1,c2字段中。

    update A as a set a.c1=b.c1,a.c2=b.c2 left jion B as b on a.id=b.id;

    8. 写手机号11位验证表达式

    1.reg1="/^139d{8}";

    2.Reg2="/^139[0-9]{8}/";

    9.请写出一个函数,实现以下功能

    字符串“open_door” 转换成 “OpenDoor”、”make_by_id” 转换成 ”MakeById”。

    方法一:

    function cstr($str){

    echo str_replace("","",ucwords(str_replace("_""",$str)));

    方法二:

    function csstr($str){

    $arr=explode("_",$str);

    foreache($arr as $v){

    $nstr.=ucwords($v);

    }

    echo $nstr;

    }

    10.请用php写出以下程序:假设网络中有一台服务器192.168.1.101,开放端口8899进行侦听,请用php的socket相关知识,写出一个简易的client,连接到server,并发送字符串”hello server!”。程序仅对连接的成功和失败进行简易错误判断和处理即可。

    <?php

    $addr='192.168.1.101';

    $port=8899;

    if($socket=socket_create(AF_INET,SOCK_STREAM,TCP)<0_){

    echo "创建失败,原因:".socket_strerror($sock);

    return false;

    }

    if($bind=socket_bind($socket,$addr,$port)<0){

    echo "绑定失败,原因:".socket_strerroe($bind);

    return false;

    }

    if($listen=socket_listen($socket,5)<0){

    echo "监听失败,原因:".socket_strerror($listen);

    return false;

    }

    if($accept=socket_accept($socket)<0){

    echo "连接失败,原因:".socket_strerror($accept);

    return FALSE;

    }

    socket_write($accept,"Hello World",strlen("Hello World"));

    Socket_close($accept);

    socket_close($socket);

    【Linux 常识】

    1.如何实现每天0点钟重启服务器

    写shell脚本:crontab 000***/sbin/restart.sh

    【附加题】

    1.使用thinkphp5.0在控制器(action)中传递一个一位数组到视图(Tpl),并将数组循环显示到前台页面,简要的写出后台的代码;

    //控制器代码

    <?php

    class show {

    function index(){

    $arr=array('ggg','ghh','kkk','iii','yuyuyu');

    $this->assgin("arr",$arr);

    return $this->fetch();

    }

    }

    //试图代码

    {volist name='arr' id='vo' key='key'}

        <{key}>=><{vo}>

    {/volist}

    3.请用php编写程序,读取出www.baidu.com的首页的网页内容(仅html),并存入字符串 $str.(10分)

        $str=file_get_contents("www.baidu.com");

    4.请用php将上题中读取出的网页内容的<title>标签的值解析出来

    $reg='/<title>(.*?)</title>/';

    preg_match($reg,$str,$m);

    var_dump($m);

    5.javascript的ajax请求

    <script>

    var Ajax;

    if(XMLHttpRequest){

    Ajax=new window.XMLHttpRequest();

    }elseif(window.ActiveXObject){

    Ajax=new window.ActiveObject("Microsoft.XMLHTTP");

    }else{

    Alert("不支持异步加载");

    return false;

    }

    //选择传送方式

    Ajax.open("post","url");

    //请求状态放生改变时执行的动作

    Ajax.onreadystatechange=function(){

    swith(Ajax.readystate){

    case0;

    case1;

    case3;

      Alert("提示信息自己定义");

      break;

    case4:

    if(Ajax.status==400){

    //成功就把发回来的值加载到对应的位置

    getElementById("show").innerHTML=Ajax.response.text;

    }else{

    Alert("请求失败");

    }

    }

    }

    //post传值时必须设置下面一步

    Ajax.setRequestHeader('Content-type','application/x-www-form-urlencoded');

    //发送数据。如果为get 传值是设置为null

    Ajax.send(data);

    </script>

     

         

  • 相关阅读:
    Hadoop是什么
    Hadoop的安装模式
    hadoop和云计算的关系
    no server suitable for synchronization found的解决办法
    hadoop的产生背景、发展历程
    Hadoop生态系统
    学习路线
    日历+时钟
    新世界(未完善)
    简单的点击切换图
  • 原文地址:https://www.cnblogs.com/chuanqideya/p/6007474.html
Copyright © 2020-2023  润新知