• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

新鸟初入PHP行业6个月总结心得

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

1.$_SERVER['HTTP_HOST']返回phpsdudy中设置的服务器地址:127.0.0.1  hml.367edu.cn

如果没有使用代理服务器,

  REMOTE_ADDR = 客户端IP    HTTP_X_FORWARDED_FOR = 没数值或不显示

  $ip = $_SERVER['REMOTE_ADDR'];

 

2.file_get_contents(test.txt)读取的结果是一个字符串;

file(test.txt)读取的结果是一个数组;

 

3.print_r($arr,true)返回一个包含完整数组内容的字符串.

 

4.file_put_contents(‘’test.txt’’,$arr)可以将数据库的数据写入一个文件中,可以只访问一次数据库,减少数据库压力.

 

5.通过对比,lock in share mode适用于两张表存在业务关系时的一致性要求,for update适用于操作同一张表时的一致性要求。

共享锁(S):SELECT * FROM table_name WHERE ... LOCK IN SHARE MODE

排他锁(X)SELECT * FROM table_name WHERE ... FOR UPDATE

 

6.include dirname(__FILE__).'/../hello.php';

dirnamedirname(__FILE__)./hello.php'; 相同。

 

7.导出数据库所有表:选中数据库psd1710,右键选择转储SQL文件,选择结构和数据(保留字段fields).

导入数据库所有表:新建一个本地数据库psd1709,右键选择运行SQL文件.

 

8.音频:audio  

<audio controls>

  <source src="horse.ogg" type="audio/ogg">

  <source src="horse.mp3" type="audio/mpeg">

  您的浏览器不支持 audio 元素。

</audio>

 

 

 

 

 

 

9.find() 方法返回被选元素的后代元素。如:$("ul").find("span").css({"color":"red","border":"2px solid red"}); html部分:

<ul>ul (直接父节点)  

<li>li (子节点)

<span>span (孙节点)</span>

</li>

</ul>   

 

 

10.readonly:html只读,输入框无法更改

<input type="text" name="country" value="Norway" readonly>

 

 

11.连接数据库:

@1.mysqli方式

define('DB_HOST', "192.168.0.20");
define('DB_PORT', "3306");
define('DB_USER', "367edu");
define('DB_PASS', "123456");
define('DB_NAME', "367edu");

 

$link = mysqli_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME, DB_PORT);

$sql = "select * from sc_student_query_category";

$result = mysqli_query($link, $sql);

$queryCategory = mysqli_fetch_all($result,MYSQLI_ASSOC);

 

 

  1. 数据库数据格式主要有几种:数字(int)(tinyint(decimal【适合于金额如decimal(10,2)】)  字符串(varchar(char)(text)(LONGTEXT)等    时间(TIMESTAMP一般使用int

 

  1. $(.class).attr(属性,值)可以动态改变元素的属性的值,如下:

$(".shang_payimg img").attr("src","https://static.runoob.com/images/dashang/"+dataid+"img.png");

 

14、$(#id).text(值)可以动态改变元素内的值,如下:$("#shang_pay_txt").text(dataid=="alipay"?"支付宝":"微信");

 

15.跳转到顶部或者尾部:<

a href="#pos" style="color: red;font-size: 50px;

position: relative; left: 600px;">↓↓↓↓跳到底部↓↓↓↓</a>

<div style="height: 8000px;"></div>

<p ></p>

 

  1. HTTP状态码:

1xx:信息类

2xx:成功类

3xx:重定向类

4xx:客户端错误类

5xx:服务端错误类

 

 

  1. URL地址去找控制器,先找到后台,然后在去找前台页面.  :

http://9469.367edu.com/?a=wap.article&uid=9469&id=179575先找后台,再去找前台. 没有前台则不会显示任何东西.

 

18.按照条件遍历整个表:

//主页视频加载
require_once $_SITE_PATH_."m/m_lib_users_media.php";
$m_lib_users_media = new m_lib_users_media();
$media = $m_lib_users_media->getArray($m_lib_users_media->startGet()->getByusers_id($__users_id__)->getByis_del(0)->setOrder('id desc')->limit(1)->query());

 

importDbModel("sc_wx_rule_app_users");
$m_sc_wx_rule_app_users = new m_sc_wx_rule_app_users($__users_id__);
$app_list = $m_sc_wx_rule_app_users->getPcAppList();

 

18.01增加数据

require_once  str_replace('ucenter','default',$_SITE_PATH_)."m/m_oa_notice_record.php";
$m_oa_notice_record =new m_oa_notice_record();

 

$_data = array(
    'users_id' => $__users_id__,
    'notice_id' => $vals_id,
    'teacher_id' => $tea_id,
    'create_date' => time()
);

$result_row = $m_oa_notice_record->save($_data)->query();

 

 

模型中操作数据库

public function getResourceListzl(){

$this->_ssql = "select r.id,r.mycolor,st.id as teacher_id, r.title, r.status, r.category_id, r.reback_content, r.publish, r.create_date, st.name as teacher_name, ss.title as subject_title, category.title as category_title from $this->source r left join sc_teacher st on st.id=r.teacher_id left join sc_subject ss on ss.id=r.subject_id left join resource_category category on category.id=r.category_id where $where  order by create_date desc LIMIT $offset, $obj->size";
$list = $this->getArray($this->query());

}

或者

$apply_list = $this->model->table("ls_property_apply", "apply")
   ->join("ls_property", "prop", "inner")->on("apply.prop_id=prop.id AND prop.is_del=0")
   ->join("ls_property_category", "cate", "inner")->on("prop.cate_id=cate.id AND cate.is_del=0")
   ->join("sc_teacher", "st", "inner")->on("apply.apply_teacher_id=st.id AND st.is_del=0")
   ->join("sc_teacher", "sst", "left")->on("apply.mg_teacher_id=sst.id AND sst.is_del=0")
   ->where($where_str, $parameter)
   ->order("apply.apply_time desc, apply.id desc")
   ->limit($offset, $size)
   ->findAll("apply.*, cate.title AS cate_title, prop.pnumber, prop.title AS prop_title, prop.company, prop.speci, st.name AS apply_teacher_name, sst.name AS mg_teacher_name");

 

 

 

 

 

 

$supplement_list = $this->model->table('oa_supplement_attend','attend')
            ->join("sc_teacher", "st", "left")->on('attend.teacher_id=st.id')
            ->where("attend.users_id = $__users_id__ and attend.is_del=0")
            ->order(' (case when attend.status=0 then 1 when attend.status=1 then 2 else 3 end),attend.create_date desc')
            ->findAll('st.name,attend.*');
return $supplement_list;

 

 

 

 


   增加数据库记录

$descriptionObj = new stdClass();
$descriptionObj->articles_id = $articlesInfo->id;
$descriptionObj->content = trim($articleContent);
$descriptionInfo = $m_articles_description->saveExpend($descriptionObj);

 

 

  1. 轮播图不起作用的时候是因为jQuery 加载了两次,而且jQuery 只能加载于所有JS之前.

 

19.微网导航小图标加载带的CSS是:

<link rel="stylesheet" type="text/css" href="/sites/default/static/wap/css/font-awesome.css" media="all" />  web_3g_menu{数据库}如果该线上数据库中没有小图标字段,则不会显示.

 

 

  1. 账号:

东江广雅学校:ID9479 账号:djgyxx 密码:djgyxx163

绵阳东辰教育集团有限公司:ID9470 账号:mydcjyjt 密码:mydcjyjt163

 

 

 

 

 

 

 

 

 

 

  1. 数据采集如果走到了没有文章列表,肯定是本分类下文字列表头尾的标签没有写对.

//获取当前页面分类下的所有文章地址

$set_article_url_start = '<script language="javascript" src=';
$set_article_url_end   = '<div align="center">';
$article_url = $Reptile->stringIntercept($typeweb,$set_article_url_start,$set_article_url_end);

 

 

  1. 数据采集如果没有页码,那么写成:

for($i=1; $i<=$value['web_page_number']; $i++){   //1
     $typeurl = $config['typeurl'].$value['webId'].'.htm';
//             var_dump($typeurl);exit;

 

如果网址上有页码则写成:

for($i=1; $i<=$value['web_page_number']; $i++){   //1
     $typeurl = $config['typeurl'].$value['webId'].$i.'.htm';
//             var_dump($typeurl);exit;

 

 

  1. FTP传东西时,必须两个都传,否则出现部分电脑网站样式显示不全.

 

 

23.如果没有列表数据说明:a标签的href属性有可能是单引号。

preg_match_all('/<a(.*?)href=\'(.*?)\'(.*?)>(.*?)<\/a>/i', $article_url,$article_url_arr);

 

24.下拉选框提交的值是value的值,1或者2,不是显示的值class.:

<select name="hml">

<option value="1">class</option>

<option value="2">555</option>

</select>

 

  1. PHP防止中文乱码:

header("Content-type: text/html; charset=utf-8");

 

 

26,获取当前网址,后面的参数可以手动添加:

$_SERVER['SERVER_NAME'].$_SERVER["REQUEST_URI"]

 

 

27.一个页面跳转到另一个页面的tab切换上时,按如下方法加:

  1. html
    <a href="B.html#skip">
    B.html
    <div '>而不是跳转的内容上

 

28.视频在iframe中播放https://blog.csdn.net/beyond__devil/article/details/52267077

优酷视频(只能全屏播放):
视频地址:http://v.youku.com/v_show/id_XNzExOTkwMjA0.html
视频IDXNzExOTkwMjA0
嵌入地址:http://player.youku.com/embed/XODY3NDMzNjY4
 复制通用代码

<iframe width="100%%" height="100%" frameborder="0" src="http://player.youku.com/embed/XODY3NDMzNjY4" allowfullscreen=""></iframe>

 

腾讯视频(微信里可以页面播放但不能全屏):
视频地址:http://v.qq.com/cover/k/khyb6moudi5fha4.html?vid=d0015bg8v6k
 视频IDd0015bg8v6k
嵌入地址:http://v.qq.com/iframe/player.html?vid=d0015bg8v6k&tiny=0&auto=0
其它参数:auto=0 不自动播放,去掉 auto=0则会自动放
复制通用代码
 

<iframe width="100%" height="100%" frameborder=0 src="http://v.qq.com/iframe/player.html?vid=d0015bg8v6k&tiny=0&auto=0" allowfullscreen=""></iframe>

29.小图标如果失去图标,可以使用代替的就代替,小图标一律使用的是css控制.:<link rel="stylesheet" type="text/css" href="/sites/default/web/tpl/9470/css/zui.lite.css">

 

  1. ping +网址 找到服务器地址

31.http://119.29.37.67/?a=web.articles&uid=9327&id=13209佛山南海技师百度商桥代码:<

script>

var _hmt = _hmt || [];

(function() {

  var hm = document.createElement("script");

  hm.src = "https://hm.baidu.com/hm.js?d377926fdd203cffe45d46627493914e";

  var s = document.getElementsByTagName("script")[0];

  s.parentNode.insertBefore(hm, s);

})();

//统计代码

$(function(){

$("[name='search']").click(function(){

var keywords = $("[name=keyword]").val();

if(keywords == ''){

alert('搜索内容不能为空!');

return false;

}

window.location.href = '/?a=web.search&uid=9327&keywords='+keywords;

});

$('input[name="keyword"]').keyup(function(evt){

if (evt.keyCode == 13) {

var keywords = $('input[name=keyword]').val();

window.location.href = '/?a=web.search&uid=9327&keywords='+keywords;

}

});

});

</script>

 

32.动态加载左边栏js: 

(function(){
        var url = self.location.href;
/*        var n = url.split("=").pop();
        console.log(n);
        if( !n ){ n=0 };*/
        try {
            $('#cont-ifr').attr('src', arr[0].list[0].src);
            var str = '<h4><i class="+ arr[0].icon +"></i>'+ arr[0].title +'</h4>'+
                '<ul class="p-list">';
            for(var i=0;i<arr[0].list.length;i++){
                var active = i==0?'class="active"':'';
                str += '<li><a href="'+ arr[0].list[i].src +'" target="ifr" '+active+ '>'+ arr[0].list[i].name +'</a></li>'
            }
            str += '</ul>';
            $(".cont-left").html(str);
            console.log(str);
        } catch (e) {
            return false;
        }
    })();

33. html是替换,而append是追加
例如 <div ></div>

34.申明一个二维的空数组:

$in = array('roomid'=>array(''));

 

  1. 调试接口里面的数据是在network里面查看XHR里面

 

  1. attr("width","500");
  2. css({"background-color":"yellow","font-size":"200%"})
  3. <td><input type="checkbox" value="<?php echo $node->id;?>"></td>
  4. 选中所有多选框:
  5. $(":checkbox[name='ids']"),选中所有多选框$(":checkbox[name='ids']").prop("checked", this.checked); // this指代的你当前选择的这个元素的JS对象

 

 

39.选中所有ul下的li下的a标签:$('.cont-left .p-list').find("a")

 

40,腾讯云图片上传:

importClass('tencent_image');
$tencentImageClass = new tencentImage();   //云图上传
$yun_url = $tencentImageClass->upload($savePath, $__users_id__);

 

41.接口的正确写法:

$uploadPath =  $_ROOT_PATH_."/cache/img/".$__users_id__.'/oa/';
$fname = basename($_FILES['file']['name']);
$f = explode(".", $fname);
$extname = strtolower($f[count($f)-1]);
$rand = rand(1000, 9999);
$fileName = substr(time(),5).$rand.".$extname";
$folder = date("Y-m-d");
$src = $folder."/$fileName";
$savePath = $uploadPath.$src;
importClass('tencent_image');
$tencent_image = new tencentImage();
$result = $tencent_image->upload($savePath,$__users_id__);//上传到腾讯云的图片
$obj = new stdClass();
if($result){
    $obj->type = "success";
    $obj->msg = "上传成功到云中";
    $obj->url = $result;
}else{
    $obj->type = "fail";
    $obj->msg = "上传失败";
}
echo json_encode($obj);
exit;

 

 

父类中寻找后代元素:

42.$("#usersInfoForm").find("button[type='submit']").bind('click', function(){code...}

 

  1. 排除干扰CSS, 应该注释一些css,找到精确文件

44.unlink($savePath); //删除图片
rmdir($oldSavePath); //删除前一天的目录

45. shell上的定时任务,每分钟执行一次下面的PHP文件, 分时日月周

*/1 * * * * php /wwwroot/367edu.com/services/view_task.php

 

46.$.post('/ucenter.php?a=common.issentImg',{imgUrl:img}, function(data){
    var rs = jQuery.parseJSON(data);
    if(rs.type=='error'){
        bootbox.alert(rs.msg);
    }else{
        $("#block").show();
    }
});

 

  1. 根据某个分组的和的大小排序:   order by field(sgi.teacher_id,16696,17181,15429,17202)

select sgi.rtime,sgi.integral,sgi.content,st.name,stg.title from sc_teacher_growing_record sgi join sc_teacher_growing_type stg on sgi.type_id=stg.id  join sc_teacher st on st.id=sgi.teacher_id where sgi.users_id=9126 and sgi.is_del=0 and sgi.status=1 and sgi.teacher_id in (16696,17181,15429,17202)  order by field(sgi.teacher_id,16696,17181,15429,17202), st.name asc,sgi.status asc,sgi.create_date desc;

 

48.trigger("click")自动执行一次点击事件

$("#QR_code").on("click",function () {
    document.getElementById('vcode').src = '/?a=code&t='+Math.random();
})
$("#QR_code").trigger("click");//自动执行一次点击事件,即刷新该验证码

 

 

49

如果$_POST没有打印出值,肯定是名字相同造成的.微工具中的表单项不能使用重名的text.

50.新建文件夹,点击右键SVN导出.填地址和账号.

51. 给下拉选框设定高度的方法:

<select  onmousedown="if(this.options.length>3){this.size=4}" onblur="this.size=0" onchange="this.size=0" >

 

52

css的下拉选框中的内容显示不全时,应该找style="overflow:hidden/auto",当前级找不到时,找父元素,一直找到为止.万丰项目

 

53,定时任务发送 的消息存在sc_wxsms_quene   sc_wxsms

,或从这里拿消息.

 

54.万丰小学移动端制度审核->ajax:

$(document).on("click",'.heBtn1',function () {

    var data_id = $(".h_id").attr('data-id');

    $.ajax({
        type: 'post',
        url: globals.ajax_save_detail,
        data: {data_id : data_id},
        dataType: 'html',
        success: function(data){
            // callback(null,data);
            // $.hideLoading();
        },
        error: function(xhr, type){
            $.alert('请求失败!')
        }
    });
})

55.刷新当前页面:location.reload();

  1. 使用strpos,两个参数都必须是字符串,否则函数将不运行.
  2. 按回车刷新当前页面函数:

$(document).on("keydown",function(e){
     if(e.keyCode == 13){
           window.location.reload();
     }
})

  1. ajax常规写法:

$.ajax({
    type: 'POST',
    url: '/ucenter.php?a=systemSettings.ajax_changeFunction',
    data: {module_ids:ids,teacher_id:<?php echo  $__teacher_id__;?>,action:'add'},
    success:function (result) {
        var rs = jQuery.parseJSON(result);
        bootbox.alert(rs.msg,function () {
            window.location.reload();
        });
        // enter键时也刷新页面
        $(document).on("keydown",function(e){
             if(e.keyCode == 13){
                   window.location.reload();
             }
        })
    }
});

  1. 更改数组中的某个值,并且以某个值排序:

function a($value){
    if(is_string($value['create_date'])){
        $value['create_date'] = strtotime($value['create_date']);
    }
    return $value;
}
$h_oa_inform = array_map('a',$h_oa_inform);
array_multisort(array_column($h_oa_inform,'create_date'),SORT_DESC,$h_oa_inform);

  1. 使用group_concat()group by显示相同名字的人的id号:

 

  1. 采集文章开头标签一定要严格去写,尾部可以随便写:错误示例如下:

$categoryStart = '<div id="vsb_content';

造成文章内容在开头位置都带上了>

  1. 如果一个变量为空,则有以下几种可能,空字符串,空数组,空对象,null,false,0以及”0”等.

$a = 0;
$b = '';
$c = array();
$d = null;
$e =FALSE;
$f = (object)null;全部返回空

  1. 直接给出(获得)一个遮罩层:

<style type="text/css">
    #loading {
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background: rgba(0, 0, 0, 0.5);
        z-index: 15000;
    }

    #loading div {
        position: absolute;
        top: 35%;
        left: 45%;
        width: 80px;
        height: 80px;
        margin-top: -15px;
        margin-left: -15px;
    }
</style>
<div '>返回</button></div>
    </div>

</div>

  1. strtotime可以将中文日期如:2018-9-20转化为时间戳,还可以将英文日期字符转化为时间戳如:strtotime("-6 day")
  2. 按中文名字进行排序:ORDER BY CONVERT (NAME USING gbk) ASC
  3. 在本页面的现有表内进行搜索:(万丰小学通讯录移动端)

$('#search_user').submit(function() {
   var keywords = $('#search_input').val();//搜索框的值
   $(".con-l").find("li").hide();//隐藏所有列表
   $(".con-l").find("li").each(function(i,th) {
      var un = $(th).find("b").text();//单个li的值
      if( un.toString().indexOf(keywords) >= 0 ) { //搜索的值第一次出现在

li中的位置如果大于0,说明搜出来了
         $(th).show();//搜出来的列表展示出来
      }
   });
   return false;
});

  1. a标签中添加相应属性可以在移动端打电话发短信:

<a href="tel:10086">10086</a>     //点击后直接拨打10086
<a href="sms:10086?body=message_body"> 10086 发短信</a>//点击后直接给10086发信息,消息内容默认为message_body   

  1. 点击a标签直接下载图片:(电脑端)

<a href="img/WC.png" download="WC.png">

  1. ios使用如下方法获得NaN,安卓手机则是正常计算,解决方法是换个这个时间的格式 new Date("2017-04-28 23:59:59").getTime()        1 换成如下方式就正常了,就是‘-’换成‘/new Date("2017/04/28 23:59:59").getTime()

增加树状组织架构图:万丰二期校历管理->新增活动中.重点是不能在弹出框中再加一个弹出层,要在网页中弹出一个,只能是弹出一个单层.

<div class="form-group">
    <label class="col-sm-3 control-label" style="float: left; line-height: 40px;"> <b>*</b>查看权限</label>
    <div class="col-sm-8" style="margin-left:10px; padding-left:0; padding-top: 10px;">
        <button class="btn btn-default chooseTeacher" type="button"><span class="fileinput-new">选择教师</span></button>
        <button class="btn btn-default clearTeacher" type="button"><span class="fileinput-new">重置教师</span></button>
    </div>
    <div class="alert alert-primary with-icon container" style="padding-left: 0">
        <i class="icon-user"></i>
        <div class="content">
            <h4>教师:</h4>
            <hr />
            <ul ></div>
</div>

<script>
   $('.chooseTeacher').structureAndPerson({person:'teacher',structure:'group,structure'}).backFunc(function(c, dom){
        console.log(c);
        showName(c);
    });
    //切换清空
    $('.clearTeacher').on('click',function(){
        $("#teacherIDS").find("li").remove();
        $(".container").css("display","none");
    });
    //移除
    $("#teacherIDS").on("click", ".removeItemButton", function(){
        var li_count = $(this).parent().parent().parent().find("li").length;
        if(li_count <= 1) {
            $(this).parents(".container").css("display","none");
        }
        $(this).parent().parent().remove();
    });

    var showName = function(ids){
        var html_str = '';
        $.each(ids, function(i, o){
            if( $("#teacherIDS").find('li[data-).append(html_str);

    }
</script>

 

 

 

 

位置跳转:利用a标签的跳转特性<title>位置跳转</title>
<meta charset="UTF-8">
<div >↑↑↑跳到顶部↑↑↑</a></div>

 

72.当变量为以下几种类型时,返回的就是空;

$a = 0;

$b = '';

$c = array();

$d = null;

$e =FALSE;

 

if (empty($a)) echo '$a 为空' . "<hr>";

if (empty($b)) echo '$b 为空' . "<hr>";

if (empty($c)) echo '$c 为空' . "<hr>";

if (empty($d)) echo '$d 为空' . "<hr>";

if (empty($e)) echo '$e 为空' . "<hr>";

 

73.一个神奇的获取中文字符的英文首字母的方法:(用于手机通讯录排序)

$str = "李刚";

echo  getFirstCharter($str);//输出L

function getFirstCharter($str){
    if(empty($str)){return '';}
    $fchar=ord($str{0});
    if($fchar>=ord('A')&&$fchar<=ord('z')) return strtoupper($str{0});
    $s1=iconv('UTF-8','gbk',$str);
    $s2=iconv('gbk','UTF-8',$s1);
    $s=$s2==$str?$s1:$str;
    $asc=ord($s{0})*256+ord($s{1})-65536;
    if($asc>=-20319&&$asc<=-20284) return 'A';
    if($asc>=-20283&&$asc<=-19776) return 'B';
    if($asc>=-19775&&$asc<=-19219) return 'C';
    if($asc>=-19218&&$asc<=-18711) return 'D';
    if($asc>=-18710&&$asc<=-18527) return 'E';
    if($asc>=-18526&&$asc<=-18240) return 'F';
    if($asc>=-18239&&$asc<=-17923) return 'G';
    if($asc>=-17922&&$asc<=-17418) return 'H';
    if($asc>=-17417&&$asc<=-16475) return 'J';
    if($asc>=-16474&&$asc<=-16213) return 'K';
    if($asc>=-16212&&$asc<=-15641) return 'L';
    if($asc>=-15640&&$asc<=-15166) return 'M';
    if($asc>=-15165&&$asc<=-14923) return 'N';
    if($asc>=-14922&&$asc<=-14915) return 'O';
    if($asc>=-14914&&$asc<=-14631) return 'P';
    if($asc>=-14630&&$asc<=-14150) return 'Q';
    if($asc>=-14149&&$asc<=-14091) return 'R';
    if($asc>=-14090&&$asc<=-13319) return 'S';
    if($asc>=-13318&&$asc<=-12839) return 'T';
    if($asc>=-12838&&$asc<=-12557) return 'W';
    if($asc>=-12556&&$asc<=-11848) return 'X';
    if($asc>=-11847&&$asc<=-11056) return 'Y';
    if($asc>=-11055&&$asc<=-10247) return 'Z';
    return '#';
}

//$allteacher 为一个二维数组

foreach($allteacher as $v){
    $firstChar = getFirstCharter($v->name);//获取中文名字的首字母
    $teacher_list[$firstChar][] = $v;
}
//以键值升序
ksort($teacher_list);
if(isset($teacher_list['#'])){
    $jin = $teacher_list['#'];
    unset($teacher_list['#']);
    $teacher_list['#'] = $jin;
}

 

 

 

  1. 设置文字纵向居中的方法:line-height: 30px;vertical-align:middle,top,bottom

选取带有 type="submit" <input> <button> 元素:

$(":submit")

 

 

  1. 获取树形数组:(应用于导航,目录结构中)

/**
 * 数组转化为多级树形结构
 * @param array $list   需要转换的数组
 * @param type $pk  主键id
 * @param type $pid 父级id
 * @param type $child   父级下子集的数组键名
 * @param type $root    根级的pid的值
 * @return type
 */
function list_to_tree($list, $pk = 'id', $pid = 'pid', $child = 'children', $root = 0) {
    // 创建Tree
    $tree = array();
    if (is_array($list)) {
        // 创建基于主键的数组引用
        $refer = array();
        foreach ($list as $key => $data) {
            $refer[$data[$pk]] = & $list[$key];
        }
        foreach ($list as $key => $data) {
            // 判断是否存在parent
            $parentId = $data[$pid];
            if ($root == $parentId) {
                $tree[] = & $list[$key];
            } else {
                if (isset($refer[$parentId])) {
                    $parent = & $refer[$parentId];
                    $parent[$child][] = & $list[$key];
                }
    


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
PHP中文处理中文字符串截取(mb_substr)和获取中文字符串字数发布时间:2022-07-10
下一篇:
php获取excel表格里面的数据发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap