王朝235网址导航
立即发布
当前位置:首页 > TP代码
文章资讯分类
文章资讯
  • tp5上一篇下一篇;php上一篇下一篇 tp5上一篇下一篇;php上一篇下一篇

    tp5上一篇下一篇;php上一篇下一篇

    前提:文章有分类,权重,时间排序等流程:因为这个功能不算难,本来想着是否能伸手主义一次,直接去网上拷贝一下直接用,奈何百度一下发现很多都是直接用的id为参照,比当前id小的即为上一篇,反之则为下一篇,这样的话弊端就相当明显,如果在列表中加上分类,权重排序,时间排序等等,显而易见简单的根据id取值就有些误差,故重新整理一份,不仅tp5适用,其他程序也可以用,此处仅以tp5做说明上代码: $art_id = Request::instance()->param('art_id'); $detail_info = Db::name("article")->where("id",$art_id)->find(); //更新文章阅读次数 $update_read_num = [ 'read_num' => $detail_info['read_num']+1, ]; Db::name("article")->where("id",$art_id)->update($update_read_num); //查找上一篇下一篇 /* 查找出全部id,组合一个数组,根据索引去判断上一个或下一个是否存在 */ $where['lm'] = $detail_info['lm']; //查询条件之所属栏目 $where['pass'] = 'yes'; //查询条件之是否显示 $all_id = Db::name("article")->field('id')->where($where)->order('px desc,create_time')->select(); $id_array = array(); foreach ($all_id as $key => $value) { if($value['id'] == $art_id){ //定位当前 //获取下一篇 if(isset($all_id[$key+1])){ $next_id = $all_id[$key+1]['id']; }else{ $next_id = ''; } //获取上一篇 if(isset($all_id[$key-1])){ $pre_id = $all_id[$key-1]['id']; }else{ $pre_id = ''; } } } if($next_id != ''){ $next_info = Db::name("article")->field('id,article_name')->where("id",$next_id)->find(); }else{ $next_info = ''; } if($pre_id != ''){ $pre_info = Db::name("article")->field('id,article_name')->where("id",$pre_id)->find(); }else{ $pre_info = ''; } $this->assign("next_info",$next_info); $this->assign("pre_info",$pre_info); 前台输出: <div class="share"> <div class="share-bg"> <div class="share-href pull-left text-left"> {if condition="$pre_info != ''"} <a href="{:url('home/index/news_show',['art_id'=>$pre_info.id])}">上一篇:{$pre_info.article_name}</a> {else /} <a href="#">上一篇:没有了</a> {/if} {if condition="$next_info != ''"} <a href="{:url('home/index/news_show',['art_id'=>$next_info.id])}">上一篇:{$next_info.article_name}</a> {else /} <a href="#">下一篇:没有了</a> {/if} </div> <div class="text-right share-r pull-right"><a href="{:url('home/index/news',['art_type'=>$art_type_name.id])}">返回</a></div> </div> </div>
    2022-10-05 4
  • tp5判断方法大全 tp5判断方法大全

    tp5判断方法大全

    一、比较标签如:{比较标签 name="变量" value="值"} 内容 {/比较标签} {eq name="name" value="value"} 相等 {else/} 不相等 {/eq} 二、判断标签1、SWITCH标签 {switch name="变量" } {case value="值1|值3" break="0或1"}输出内容1{/case} {case value="值2"}输出内容2{/case} {default /}默认情况 {/switch} 2、IF标签 {if condition="($name == 1) OR ($name > 100) "} value1 {elseif condition="$name eq 2"/}value2 {else /} value3 {/if} 3、IN和NOTIN1.in标签来判断模板变量是否在某个范围内 {in name="id" value="1,2,3"} id在范围内 {/in} 2.如果判断不在某个范围内,可以使用notin标签: {notin name="id" value="1,2,3"} id不在范围内 {/notin} 4、BETWEEN 和 NOTBETWEEN1.between标签来判断变量是否在某个区间范围内: {between name="id" value="1,10"} 输出内容1 {/between} 2.notbetween标签来判断变量不在某个范围内: {notbetween name="id" value="1,10"} 输出内容2 {/notbetween} 5、RANGE、PRESENT、 NOTPRESENT标签1.range标签,替换前面的判断用法: {range name="id" value="1,2,3" type="in"} 输出内容1 {/range} 2.present标签用于判断某个变量已经定义,用法: {present name="name"} name已经赋值 {/present} 3.notpresent标签用于判断某个变量是没有定义,用法: {notpresent name="name"} name还没有赋值 {/notpresent} 6、EMPTY、 NOTEMPTY、DEFINED、NOTDEFINED 标签1.empty标签用于判断某个变量为空: {empty name="name"} name为空值 {/empty} 2.notempty标签用于判断某个变量不为空: {notempty name="name"} name不为空 {/notempty} 3.DEFINED标签用于判断某个常量有定义: {defined name="NAME"} NAME常量已经定义 {/defined} 4.NOTDEFINED标签用于判断某个常量没有定义: {notdefined name="NAME"} NAME常量未定义 {/notdefined}
    2022-09-21 9
  • tp5时间查询-时间表达式 tp5时间查询-时间表达式

    tp5时间查询-时间表达式

    // 获取今天的王朝235网址导航数据 Db::table('think_blog') ->whereTime('create_time', 'today')->select(); // 获取昨天的王朝235网址导航数据 Db::table('think_blog')->whereTime('create_time', 'yesterday')->select(); // 获取本周的王朝235网址导航数据 Db::table('think_blog')->whereTime('create_time', 'week')->select(); // 获取上周的王朝235网址导航数据 Db::table('think_blog')->whereTime('create_time', 'last week')->select(); // 获取本月的王朝235网址导航数据 Db::table('think_blog')->whereTime('create_time', 'month')->select(); // 获取上月的王朝235网址导航数据 Db::table('think_blog')->whereTime('create_time', 'last month')->select(); // 获取今年的王朝235网址导航数据 Db::table('think_blog')->whereTime('create_time', 'year')->select(); // 获取去年的王朝235网址导航数据 Db::table('think_blog')->whereTime('create_time', 'last year')->select(); 如果查询当天、本周、本月和今年的时间,还可以简化为: // 获取今天的王朝235网址导航数据 Db::table('think_blog')->whereTime('create_time', 'd')->select(); // 获取本周的王朝235网址导航数据 Db::table('think_blog')->whereTime('create_time', 'w')->select(); // 获取本月的王朝235网址导航数据 Db::table('think_blog')->whereTime('create_time', 'm')->select(); // 获取今年的王朝235网址导航数据 Db::table('think_blog')->whereTime('create_time', 'y') ->select(); V5.0.5+版本开始,还可以使用下面的方式进行时间查询 // 查询两个小时内的王朝235网址导航数据 Db::table('think_blog')->whereTime('create_time','-2 hours')->select();
    2022-09-16 10
  • tp5常用公共方法-自定义分页效果 tp5常用公共方法-自定义分页效果

    tp5常用公共方法-自定义分页效果

    /** * 将多维数组继续分页,自定义分页效果 * @param array &$array 数组 * @param int $page 当前页数 * @param int $limit 每页页数 * @param int $order 0-不变 1-反序 * @param bool $preserveKey true - 保留键名 false - 默认。重置键名 */ function arrayToPage(Array &$array, int $page = 1, int $limit = 20, int $order = 0,bool $preserveKey = false) { $start = ($page - 1) * $limit; //计算每次分页的开始位置 //反序 if ($order == 1) $array = array_reverse($array); $array = array_slice($array, $start, $limit,$preserveKey); }
    2022-09-09 7
  • tp5常用公共方法-二维数组去重(支持多字段同时匹配去重) tp5常用公共方法-二维数组去重(支持多字段同时匹配去重)

    tp5常用公共方法-二维数组去重(支持多字段同时匹配去重)

    function moreArrayUnique($arr, $field = [], $allField = true) { //必须是传入数组 if (!is_array($field)) return false; //先把二维数组中的内层数组的键值记录在在一维数组中 foreach ($arr[0] as $k => $v) $allField[] = $k; if ($field) { //按照顺序排字段名 foreach ($allField as $key => $val) { if (!in_array($val, $field)) unset($allField[$key]); } $field = $allField; } foreach ($arr as $k => $v) { foreach ($v as $key => $item) { if (!in_array($key, $field)) unset($v[$key]); } //降维 用implode()也行 $v = implode(",", $v); //保留原来的键值 $temp[]即为不保留原来键值 $temp[$k] = $v; } //去重:去掉重复的元素 $arr = array_unique($temp); if ($allField) { foreach ($arr as $k => $v) { //拆分后的重组 如:Array( [0] => 张三 [1] => 18 ) $a = explode(",", $v); //将原来的键与值重新合并 $arrAfter[] = array_combine($field, $a); } } else { //将键值保存为一维数组 $allKey = array_keys($temp); $arrAfter = []; foreach ($arr as $k => $v) { //数组去重 if (!in_array($k, $allKey)) { unset($arr[$k]); } else { $a = explode(",", $v); $arrAfter[] = array_combine($field, $a); } } } return $arrAfter ?? false; }
    2022-09-09 7
  • tp5常用方法-根据相关键值生成父子关系(二维生成树) tp5常用方法-根据相关键值生成父子关系(二维生成树)

    tp5常用方法-根据相关键值生成父子关系(二维生成树)

    /** * 根据相关键值生成父子关系 * @param array $arr1 数组1 * @param array $arr2 数组2 * @param string $arr1_key 数组1对应的键值 * @param string $arr2_key 数组2对应的父级键值 * @param string $child 合并的数组键值 */ function listToTree2(&$arr1, $arr2, $arr1_key = 'id', $arr2_key = 'pid', $child = 'children') { foreach ($arr1 as $i => &$item1) { foreach ($arr2 as $j => $item2) { if ($item1[$arr1_key] == $item2[$arr2_key]) { if (!isset($item1[$child]) || !is_array($item1[$child])) $item1[$child] = []; $item1[$child][] = $item2; } } } }
    2022-09-09 4
  • tp5常用方法-把数据写到文件中 tp5常用方法-把数据写到文件中

    tp5常用方法-把数据写到文件中

    function logs($filename, $data) { file_put_contents('./logs/' . $filename, $data); }
    2022-09-09 3
  • tp5常用公共方法-Xml转数组 tp5常用公共方法-Xml转数组

    tp5常用公共方法-Xml转数组

    function XmlToArr($xml) { if ($xml == '') return ''; libxml_disable_entity_loader(true); $arr = json_decode(json_encode(simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA)), true); return $arr; }
    2022-09-09 4
  • tp5常用公共方法-数组转xml tp5常用公共方法-数组转xml

    tp5常用公共方法-数组转xml

    function ArrToXml($arr) { if (!is_array($arr) || count($arr) == 0) return ''; $xml = "<xml>"; foreach ($arr as $key => $val) { if (is_numeric($val)) { $xml .= "<" . $key . ">" . $val . "</" . $key . ">"; } else { $xml .= "<" . $key . "><![CDATA[" . $val . "]]></" . $key . ">"; } } $xml .= "</xml>"; return $xml; }
    2022-09-09 3
  • tp5常用公共方法-微信统一下单api会用到 tp5常用公共方法-微信统一下单api会用到

    tp5常用公共方法-微信统一下单api会用到

    function postXml($url, $xmldata) { $url = $url; $postfields = $xmldata; $ch = curl_init(); $headers = [ //"Content-Type:text/html;charset=UTF-8", "Connection: Keep-Alive" ]; //$params[CURLOPT_HTTPHEADER] = $headers; //自定义header $params[CURLOPT_URL] = $url; //请求url地址 $params[CURLOPT_HEADER] = false; //是否返回响应头信息 $params[CURLOPT_RETURNTRANSFER] = true; //是否将结果返回 $params[CURLOPT_FOLLOWLOCATION] = true; //是否重定向 $params[CURLOPT_POST] = true; $params[CURLOPT_POSTFIELDS] = $postfields; $params[CURLOPT_SSL_VERIFYPEER] = false; $params[CURLOPT_SSL_VERIFYHOST] = false; curl_setopt_array($ch, $params); //传入curl参数 $content = curl_exec($ch); //执行 curl_close($ch); //关闭连接 return $content; //返回输出登录结果 }
    2022-09-09 6