Vjack7
12/4/2019 - 6:29 AM

零碎知识点

零碎知识点

零碎知识点

  • return redirect('admin/banner')->with('success', '添加成功'); 重定向并加上 Session 闪存数据laravel文档
    重定向后缓存的数据和信息error或success可以在blade模板中读取,@include('admin.main.__message'),暂时先用这个模板
  • laravel中的全局$errors,讲解博客 自动验证->withErrors()中
  • laravel中分页appends用法,步骤:先找自己使用的laravel版本,之后查文档,看具体使用方法,使用appends的场景是后台带条件的查询,查询结果较多使用了分页,点击下一页后需要把查询条件也带上
    {!! $oWikiLists->appends(request()->all())->links() !!} {!! $oWikiLists->appends(['status' => request()->get('status')])->links() !!}
  • php中iconv函数库能够完成各种字符集间的转换//过滤非法特殊字符串 $nickname = iconv('gb2312//ignore', 'utf-8', iconv('utf-8', 'gb2312//ignore', $nickname)); 注意事项
  • ajax post 过来的有时候dd不出,可以用laravel自带的info()use Illuminate\Support\Facades\Log; Log::info() 存日志的方式查看,中间用.连接
  • 日志格式可以分天记录在config/app.php中可以设置
  • 常用快捷键crtl+r查找替换、F2快速定位错误地方、crtl+g定位到某一行、crtl+shift+u大小写切换、crtl+shift+t格式换代码
  • $sPicturePath = str_replace("http", "https", $aReturn['data']['avatar_url']); 将http转成https,或者在asset(“", true)中第二个参数传true
  • 如果a标签没有加上括号,用.连接会变成字符串格式,加上括号可以避免转换,对了不能和js的 + 混用,PHP中的+代表,数学中的+ 如果href中是变量的话用单引号引起来 ,可以不用加括号,在引用的地方加了个{}
"text" => array(
                    "content" => $sSendUserName . '给您发送了祝福' . ('<a href="www.baidu.com">点击查看>>></a>'),
                    "content1" => "<a href='www.baidu.com'>点击查看>>></a>" . $sSendUserName . "给您发送了祝福"
                    "content" => $sSendUserName . '给您发送了祝福' . ("<a href='$sJumpLink'>点击查看>>></a>"),
                    "content" => $sSendUserName . '给您发送了祝福' . "<a href='{$v["jumplink"]}'>点击查看>>></a>"
                ),
  • php调用函数前加一个@,原因是不让报错信息显示
  • date(“Y-m-d H:i:s”,time()),与当前时间不一致,修改php.ini 中的date.timezone = PRC 由UTC改成PRC
  • 查看自己电脑powershell版本,在菜单栏中找到powershell输入$PSVersionTable.PSVersion major就是版本号
  • jsonencode中如果有中文会进行编码,可以在后面加上JSON_UNESCAPED_UNICODE 可以防止中文编码
  • php5.3版本和之前版本声明数组用 $a = array(); 5.4版本之后可以用$a = [],接口返回的json数组也要用arrayreturn json_encode(array('success'=>true));,反正只要是数组的地方5.4版本之前的都要用[]
  • 在做项目时,调试时把apache的PHP版本切换到与服务器一样的版本,否则虽然本地可以跑通,但线上不一定能跑通
  • 还有一个和PHP版本有关的是JSON_UNESCAPED_UNICODE json_encode会把中文进行Unicode编码,添加这个属性就不会,但是PHP版本5.3以前不支持,可以换成下面这个函数
function json_encode_ex($value)
    {
        if (version_compare(PHP_VERSION,'5.4.0','<'))
        {
            $str = json_encode($value);
            $str = preg_replace_callback(
                "#\\\u([0-9a-f]{4})#i",
                function($matchs)
                {
                    return iconv('UCS-2BE', 'UTF-8', pack('H4', $matchs[1]));
                },
                $str
            );
            return $str;
        }
        else
        {
            return json_encode($value, JSON_UNESCAPED_UNICODE);
        }
    }

在使用json_encode的地方,换成调用这个方法。

  • 企业微信号,在后台添加后,仍显示这个人是非企业人员,还需要把企业号推给他,让他关注下
  • 企业微信只有一个corpid,每个应用有单独的secrect和id,接口应用在哪,获取access_token时就要用哪个应用的secret
  • ORM中的delete()返回被删除的条数
  • save() 保存成功会返回true
  • PHP list函数 list($dst_w, $dst_h, $dst_type) = getimagesize($target_path); getimagesize($target_path); 输出为
array:7 [▼
  0 => 1024    对应$dst_w
  1 => 768     对应$dst_h
  2 => 2       对应$dst_type
  3 => "width="1024" height="768""
  "bits" => 8
  "channels" => 3
  "mime" => "image/jpeg"
]
  • 接口返回的数组格式的,用json_decode() 可以把格式转成array格式的
  • 字符串转数组,逗号分隔explode(',', $sLevel); 也会变成数组
  • json_decode(array, true)true返回值是数组,否则返回值为object
  • Navicat中清空表并且id重新从1开始:新建查询 truncate table 表名; 表明不用加引号
  • 将二维数组中的一个字段转成一维数组,可以用函数array_column($array, 'disease_id');,也可以传递第三个参数作为键,如果没有传第三个则键为0
  • 判断一个字符串中是否有某一个字符,如果用strpos,返回位置,由于位置可能为0,所以判断条件可以写成 if (strpos($a, '[') !== false) {}
  • 视图中引用模型中的方法 `src="{{ \App\Models\Doctor::}}"
  • json_encode会生成两种格式
  • array_values($aArray)会使数组重新从0开始 在接口返回的格式会因这个数组有没有从0开始而不同
  • 从0开始的[{}, {}] 不是从0开始的 {'2':{}, '3':{}}
  • cmd 启动redis redis-server