$all_image_files, 0, 1); $backgroundPath = $bgimgdir.$backgroundFile[0]; $font = PLUGIN_PATH."le_title_pic/static/MSYH.otf"; //字体,需要使用微软雅黑 宋体等常见字体 $size = 14; //默认字体大小 $oneline = 10; preg_match_all("/./u", $title, $t_arr);//将所有字符转成单个数组 $tarr = $t_arr[0]; $t_total = count($tarr); //标题长度 if($t_total > 30){ $t_total = 30; } $cha = 30 - $t_total; $size = $size + $cha; if($size > 28 ){ $size = 28; }elseif($size < 18){ $size = 18; } $text = ''; if($t_total > $oneline){ $line = 2; $bnum = $t_total/2; $snum = 0; for ($x = 0; $x < $t_total; $x++) { $snum++; if($snum >= $bnum){ $snum = 0; $text .= $tarr[$x].PHP_EOL; }else{ if($x > 27){ $text .= "..."; break; }else{ $text .= $tarr[$x]; } } } }else{ $text = $title; $line = 1; } //创建图片 $img = imagecreatefromjpeg($backgroundPath); $width = imagesx($img); $height = imagesy($img); if($line > 1){ $a = imagettfbbox($size, 0, $font, $text); //得到字符串虚拟方框四个点的坐标 $len = $a[2] - $a[0]; $x = ($width-$len)/2; $h = $size/10; $y = ($height/2)-15+$h; }else{ $a = imagettfbbox($size, 0, $font, $text); //得到字符串虚拟方框四个点的坐标 $len = $a[2] - $a[0]; $x = ($width-$len)/2; $h = $size/10; $y = ($height/2)+10+$h; } $color = imagecolorallocate($img, 255, 255, 255); // 0 0 0 表示黑色 $setting = $this->kv->get('le_title_pic_setting'); $cache_day = $setting['cache_day'].' day'; //缓存天数 //将规定当前页面缓存的时间(两天),并在下一次访问中使用这个缓存时间节点。接下来判断是否已经有缓存,如果有,就使用缓存。 header("Cache-Control: private, max-age=10800, pre-check=10800"); header("Pragma: private"); header("Expires: " . date(DATE_RFC822, strtotime($cache_day))); header("Content-type:image/jpeg"); imagettftext($img, $size, 0, $x, $y, $color, $font, $text); imagejpeg($img); imagedestroy($img); exit(); } //站点地图 $sitemap_uri = array('sitemap.xml', 'sitemap.html', 'sitemap.txt'); if(in_array($uri, $sitemap_uri)){ $u_arr = explode('.', $uri); $_GET['control'] = 'sitemap'; $_GET['action'] = $u_arr[1]; return; } $r = $this->category_url($cfg, $uri); if($r){return;} $r = $this->content_url($cfg, $uri); if($r){return;} $r = $this->tag_url($cfg, $uri); if($r){return;} $r = $this->search_url($cfg, $uri); if($r){return;} $r = $this->comment_url($cfg, $uri); if($r){return;} $r = $this->index_page_url($cfg, $uri); if($r){return;} $r = $this->tag_like_url($cfg, $uri); if($r){return;} $r = $this->user_url($cfg, $uri); if($r){return;} $r = $this->model_url($cfg, $uri); if($r){return;} $r = $this->flags_url($cfg, $uri); if($r){return;} $r = $this->space_url($cfg, $uri); if($r){return;} } //伪静态结束------------------------------------------------------------------------------------------------------ // 伪静态时,如果 $uri 有值,但没有解析到相关 $_GET 时,就提示404 if(empty($_GET) && isset($uri) && !empty($uri)) { core::error404(); } if( !isset($_GET['control']) ) { $r = $this->other_url(); if($r){return;} } } //---------------------------------------------------------------------- 以下是各模块URL解析的具体函数实现 //模型页URL解析 protected function model_url($cfg = array(), $uri = ''){ //模型信息 table=>mid $model_arr = array_flip($cfg['table_arr']); // 模型URL未设置后缀/的情况,301重定向到已设置后缀的URL if( isset($model_arr[$uri]) ) { http_location($cfg['weburl'].$uri.'/', '301'); } $_GET['control'] = 'model'; $_GET['action'] = 'index'; if(substr($uri, -1) == '/'){ $newurl = substr($uri, 0, -1); }else{ $newurl = $uri; } //模型首页URL if( isset($model_arr[$newurl]) ) { $_GET['mid'] = (int)$model_arr[$newurl]; return true; } //模型分页URL $u_arr = explode('/', $newurl); if( isset($model_arr[$u_arr[0]]) ) { $_GET['mid'] = (int)$model_arr[$u_arr[0]]; //分页 if( isset($u_arr[1]) ){ if($page = $this->page_check($u_arr[1])){ $_GET['page'] = $page; }else{ core::error404(); } } return true; } unset($_GET['control']); unset($_GET['action']); return false; } //分类URL解析 protected function category_url($cfg = array(), $uri = ''){ //分类信息 alias=>cid $cate_arr = array_flip($cfg['cate_arr']); // 分类URL未设置后缀的情况,301重定向到已设置后缀的URL if( isset($cate_arr[$uri]) ) { http_location($cfg['weburl'].$uri.$cfg['link_cate_end'], '301'); } $_GET['control'] = 'cate'; $_GET['action'] = 'index'; $len = strlen($cfg['link_cate_end']); //分页首页URL if(substr($uri, -$len) == $cfg['link_cate_end']) { $newurl = substr($uri, 0, -$len); if( isset($cate_arr[$newurl]) ) { $_GET['cid'] = (int)$cate_arr[$newurl]; return true; } } //分类URL分页的情况 if(strpos($uri, $cfg['link_cate_page_pre']) !== FALSE) { $len = strlen($cfg['link_cate_page_end']); if(substr($uri, -$len) == $cfg['link_cate_page_end']) { $newurl = substr($uri, 0, -$len); $u_arr = explode($cfg['link_cate_page_pre'], $newurl); if( isset($cate_arr[$u_arr[0]]) ) { $_GET['cid'] = (int)$cate_arr[$u_arr[0]]; //分页 if( isset($u_arr[1]) ){ if($this->integer_check($u_arr[1])){ $_GET['page'] = $u_arr[1]; }else{ core::error404(); } } return true; } } } unset($_GET['control']); unset($_GET['action']); return false; } //内容URL解析 protected function content_url($cfg = array(), $uri = ''){ $link_show_end = $cfg['link_show_end']; $link_show_end_len = strlen($link_show_end); $cate_arr = array_flip($cfg['cate_arr']); $newurl = $link_show_end_len ? substr($uri, 0, -$link_show_end_len) : $uri; $_GET['control'] = 'show'; $_GET['action'] = 'index'; switch ($cfg['link_show_type']){ case 1: //数字型 preg_match("/^(\d+)\/(\d+)$/i", $newurl, $mat); if( isset($mat[2]) ){ $_GET['cid'] = $mat[1]; $_GET['id'] = $mat[2]; return true; } break; case 2: //推荐型 preg_match("/^(\w+)\/(\d+)$/i", $newurl, $mat); if( isset($mat[2]) && isset($cate_arr[$mat[1]]) ){ $_GET['cid'] = $cate_arr[$mat[1]]; $_GET['id'] = $mat[2]; return true; } break; case 3: //别名型 preg_match("/^(\d+)\_(\d+)$/i", $newurl, $mat); //没有设置别名,将用 cid_id 组合 if( isset($mat[2]) ) { $_GET['cid'] = $mat[1]; $_GET['id'] = $mat[2]; return true; }elseif( preg_match('/^[a-zA-Z0-9-_]+$/i', $newurl) ) { $row = $this->only_alias->get($newurl); if( !empty($row) ) { $_GET['cid'] = $row['cid']; $_GET['id'] = $row['id']; return true; } } break; case 4: //加密型 $newurl = decrypt($newurl);//解密得到 cid_id preg_match("/^(\d+)\_(\d+)$/i", $newurl, $mat); if( isset($mat[2]) ) { $_GET['cid'] = $mat[1]; $_GET['id'] = $mat[2]; return true; } break; case 5: //ID型 if($this->integer_check($newurl)){ $_GET['mid'] = 2; $_GET['id'] = $newurl; return true; } preg_match("/^(\d+)\_(\d+)$/i", $newurl, $mat); if( isset($mat[2]) ) { if( !$this->mid_check($mat[1], $cfg) ){core::error404();} $_GET['mid'] = $mat[1]; $_GET['id'] = $mat[2]; return true; } break; case 6: //别名组合型 $u_arr = explode('/', $newurl); if( isset($u_arr[1]) && isset($cate_arr[$u_arr[0]]) ){ $cid = (int)$cate_arr[$u_arr[0]]; // 如果没有设置别名,将用 cid_id 组合 preg_match("/^(\d+)\_(\d+)$/i", $u_arr[1], $mat); if(isset($mat[2]) && $mat[1] == $cid) { $_GET['cid'] = $mat[1]; $_GET['id'] = $mat[2]; return true; }elseif(preg_match('/^[a-zA-Z0-9-_]+$/i', $u_arr[1])) { $row = $this->only_alias->get($u_arr[1]); if(!empty($row) && $row['cid'] == $cid) { $_GET['cid'] = $row['cid']; $_GET['id'] = $row['id']; return true; } } } break; case 7: //灵活型 $quote = preg_quote($cfg['link_show'], '#'); $quote = strtr($quote, array( '\{cid\}' => '(?\d+)', '\{mid\}' => '(?\d+)', '\{id\}' => '(?\d+)', '\{alias\}' => '(?\w+)', '\{cate_alias\}' => '(?\w+)', '\{password\}' => '(?\w+)', '\{ymd\}' => '(?\d{8})', '\{y\}' => '(?\d{4})', '\{m\}' => '(?\d{2})', '\{d\}' => '(?\d{2})', '\{auth_key\}' => '(?\w+)', )); preg_match('#'.$quote.'#', $uri, $mat); if($mat){ //用于control验证日期 isset($mat['ymd']) AND $_GET['date_ymd'] = $mat['ymd']; isset($mat['y']) AND $_GET['date_y'] = $mat['y']; isset($mat['m']) AND $_GET['date_m'] = $mat['m']; isset($mat['d']) AND $_GET['date_d'] = $mat['d']; $auth_key = $_ENV['_config']['auth_key']; if( isset($mat['auth_key']) && $mat['auth_key'] != substr(md5($auth_key), 0, 6) ){ core::error404(); } if( isset($mat['cid']) && isset($mat['id']) ) { // {cid} {id} 合组 $_GET['cid'] = $mat['cid']; $_GET['id'] = $mat['id']; return true; }elseif( isset($mat['mid']) && isset($mat['id']) && $this->mid_check($mat['mid'], $cfg) ) { // {mid} {id} 合组 $_GET['mid'] = $mat['mid']; $_GET['id'] = $mat['id']; return true; }elseif( isset($mat['cate_alias']) && isset($mat['id']) ) { // {cate_alias} {id} 合组 $_GET['cid'] = isset($cate_arr[$mat['cate_alias']]) ? $cate_arr[$mat['cate_alias']] : 0; empty($_GET['cid']) && core::error404(); $_GET['id'] = $mat['id']; return true; }elseif( isset($mat['password']) ) { // {password} $newurl = decrypt($mat['password']);//解密得到 cid_id preg_match("/^(\d+)\_(\d+)$/i", $newurl, $mat); if( isset($mat[2]) ) { $_GET['cid'] = $mat[1]; $_GET['id'] = $mat[2]; return true; } }elseif( isset($mat['alias']) ) { // {alias} preg_match("/^(\d+)\_(\d+)$/i", $mat['alias'], $mat2); //没有设置别名,将用 cid_id 组合 if( isset($mat2[2]) ) { $_GET['cid'] = $mat2[1]; $_GET['id'] = $mat2[2]; return true; } $row = $this->only_alias->get($mat['alias']); if(!empty($row)) { $_GET['cid'] = $row['cid']; $_GET['id'] = $row['id']; return true; } } // 比如article/id.html,只能一个文章模型(多模型的不行,没法区分id属于那个模型的),因此丢到最后 if ( isset($mat['id']) && $this->integer_check($mat['id']) ){ $u_arr = explode('/', $uri); if( substr($cfg['link_show'], 0, strlen($u_arr[0])) == $u_arr[0] ){ $_GET['mid'] = 2; $_GET['id'] = $mat['id']; return true; } } } break; case 8: //HashIDS $newurl = hashids_decrypt($newurl);//解密得到 cid id 数组 if(is_array($newurl) && isset($newurl[1])){ $_GET['cid'] = $newurl[0]; $_GET['id'] = $newurl[1]; return true; } break; } unset($_GET['control']); unset($_GET['action']); return false; } //标签URL解析 protected function tag_url($cfg = array(), $uri = ''){ $len = strlen($cfg['link_tag_pre']); if(substr($uri, 0, $len) == $cfg['link_tag_pre']) { $len2 = strlen($cfg['link_tag_end']); if(substr($uri, -$len2) == $cfg['link_tag_end']) { $_GET['control'] = 'tag'; $_GET['action'] = 'index'; $newurl = substr($uri, $len, -$len2); $u_arr = explode('/', $newurl); $u_arr_count = count($u_arr); if($u_arr_count > 2){ core::error404(); } //分页 if( isset($u_arr[1]) ){ $page = $this->page_check($u_arr[1]); if($page){ $_GET['page'] = $page; }else{ core::error404(); } } switch ($cfg['link_tag_type']){ case 0: preg_match('/^(\d+)\_(.+)$/i', $u_arr[0], $mat); if( isset($mat[2]) ) { if( !$this->mid_check($mat[1], $cfg) ){core::error404();} $_GET['mid'] = $mat[1]; $_GET['name'] = $mat[2]; return true; }else{ $_GET['mid'] = 2; $_GET['name'] = $u_arr[0]; return true; } break; case 1: preg_match("/^(\d+)\_(\d+)$/i", $u_arr[0], $mat); if( isset($mat[2]) ) { if( !$this->mid_check($mat[1], $cfg) ){core::error404();} $_GET['mid'] = $mat[1]; $_GET['tagid'] = $mat[2]; return true; }elseif( $this->integer_check($u_arr[0]) ){ $_GET['mid'] = 2; $_GET['tagid'] = $u_arr[0]; return true; } break; case 2: $newurl = decrypt($u_arr[0]);//解密得到 mid_tagid preg_match("/^(\d+)\_(\d+)$/i", $newurl, $mat); if( isset($mat[2]) ){ if( !$this->mid_check($mat[1], $cfg) ){core::error404();} $_GET['mid'] = (int)$mat[1]; $_GET['tagid'] = (int)$mat[2]; return true; } break; case 3: $newurl = hashids_decrypt($u_arr[0]);//解密得到 mid tagid 数组 if(is_array($newurl) && isset($newurl[1])){ $_GET['mid'] = (int)$newurl[0]; $_GET['tagid'] = (int)$newurl[1]; return true; } break; } }else{ //尝试301跳转到带后缀的链接试试看~ http_location($cfg['weburl'].$uri.$cfg['link_tag_end'], '301'); } } unset($_GET['control']); unset($_GET['action']); return false; } //搜索URL解析 protected function search_url($cfg = array(), $uri = ''){ if(substr($uri, 0, 7) == 'search/') { if(substr($uri, -1) != '/'){$uri .= '/';} Lecms 3.0.3 错误

错误信息

  • 消息: [程序异常] : 类 parseurl_control 不存在
  • 文件: /www/wwwroot/www.pjwan.com/lecms/xiunophp/lib/core.class.php
  • 位置: 第115行

错误位置

    #111        }elseif(is_file(FRAMEWORK_PATH.'ext/network/'.$classname.'.php')) {
    #112            include FRAMEWORK_PATH.'ext/network/'.$classname.'.php';
    #113        }else{
    #114            if(!defined('VENDOR')){
    #115                throw new Exception("类 $classname 不存在");
    #116            }
    #117        }
    #118        DEBUG && $_ENV['_include'][] = $classname.' 类';
    #119        return class_exists($classname, false);
    #120    }

基本信息

  • 模型: /www/wwwroot/www.pjwan.com/lecms/model/
  • 视图: /www/wwwroot/www.pjwan.com/view/default/
  • 控制器: /www/wwwroot/www.pjwan.com/lecms/control/_control.class.php
  • 日志目录: /www/wwwroot/www.pjwan.com/runcache/logs/

程序流程

  • #0 [internal function]: core::autoload_handler()
  • #1 /www/wwwroot/www.pjwan.com/lecms/xiunophp/lib/core.class.php(191): spl_autoload_call()
  • #2 /www/wwwroot/www.pjwan.com/lecms/xiunophp/lib/core.class.php(125): core::parseurl_control()
  • #3 /www/wwwroot/www.pjwan.com/lecms/xiunophp/lib/core.class.php(10): core::init_get()
  • #4 /www/wwwroot/www.pjwan.com/lecms/xiunophp/xiunophp.php(100): core::init_start()
  • #5 /www/wwwroot/www.pjwan.com/index.php(20): require('/www/wwwroot/ww...')
  • #6 {main}

SQL

    $_GET

    • #rewrite => rjjc/63156.html

    $_POST

      $_COOKIE

      • #acw_tc => 0819529717872133379284594e7b512e074f65135a4b1d1ff187e1b78d
      • #PHPSESSID => mfdmmsgs5mi1ior9026limme3m
      • #cdn_sec_tc => 0819529717872133379284594e7b512e074f65135a4b1d1ff187e1b78d

      包含文件

      • #0 /www/wwwroot/www.pjwan.com/index.php
      • #1 /www/wwwroot/www.pjwan.com/lecms/xiunophp/xiunophp.php
      • #2 /www/wwwroot/www.pjwan.com/lecms/config/config.inc.php
      • #3 /www/wwwroot/www.pjwan.com/lecms/xiunophp/lib/base.func.php
      • #4 /www/wwwroot/www.pjwan.com/lecms/xiunophp/lib/core.class.php
      • #5 /www/wwwroot/www.pjwan.com/lecms/xiunophp/lib/debug.class.php
      • #6 /www/wwwroot/www.pjwan.com/lecms/xiunophp/lib/log.class.php
      • #7 /www/wwwroot/www.pjwan.com/lecms/xiunophp/lib/model.class.php
      • #8 /www/wwwroot/www.pjwan.com/lecms/xiunophp/lib/view.class.php
      • #9 /www/wwwroot/www.pjwan.com/lecms/xiunophp/lib/control.class.php
      • #10 /www/wwwroot/www.pjwan.com/lecms/xiunophp/db/db.interface.php
      • #11 /www/wwwroot/www.pjwan.com/lecms/xiunophp/db/db_pdo_mysql.class.php
      • #12 /www/wwwroot/www.pjwan.com/lecms/xiunophp/cache/cache.interface.php
      • #13 /www/wwwroot/www.pjwan.com/lecms/xiunophp/cache/cache_memcache.class.php
      • #14 /www/wwwroot/www.pjwan.com/lecms/xiunophp/ext/network/Network__interface.php
      • #15 /www/wwwroot/www.pjwan.com/lecms/config/plugin.inc.php
      • #16 /www/wwwroot/www.pjwan.com/lecms/plugin/editor_sd/conf.php
      • #17 /www/wwwroot/www.pjwan.com/lecms/plugin/editor_tinymce/conf.php
      • #18 /www/wwwroot/www.pjwan.com/lecms/plugin/editor_um/conf.php
      • #19 /www/wwwroot/www.pjwan.com/lecms/plugin/le_adminer/conf.php
      • #20 /www/wwwroot/www.pjwan.com/lecms/plugin/le_baidu_zz/conf.php
      • #21 /www/wwwroot/www.pjwan.com/lecms/plugin/le_category_filter/conf.php
      • #22 /www/wwwroot/www.pjwan.com/lecms/plugin/le_content_tag_url/conf.php
      • #23 /www/wwwroot/www.pjwan.com/lecms/plugin/le_data_table_split/conf.php
      • #24 /www/wwwroot/www.pjwan.com/lecms/plugin/le_drafts/conf.php
      • #25 /www/wwwroot/www.pjwan.com/lecms/plugin/le_feedback/conf.php
      • #26 /www/wwwroot/www.pjwan.com/lecms/plugin/le_homepage_feign/conf.php
      • #27 /www/wwwroot/www.pjwan.com/lecms/plugin/le_html_cache/conf.php
      • #28 /www/wwwroot/www.pjwan.com/lecms/plugin/le_links/conf.php
      • #29 /www/wwwroot/www.pjwan.com/lecms/plugin/le_minganci_do/conf.php
      • #30 /www/wwwroot/www.pjwan.com/lecms/plugin/le_rand404content/conf.php
      • #31 /www/wwwroot/www.pjwan.com/lecms/plugin/le_rand_author/conf.php
      • #32 /www/wwwroot/www.pjwan.com/lecms/plugin/le_rand_pic_cid/conf.php
      • #33 /www/wwwroot/www.pjwan.com/lecms/plugin/le_sharejs/conf.php
      • #34 /www/wwwroot/www.pjwan.com/lecms/plugin/le_slide/conf.php
      • #35 /www/wwwroot/www.pjwan.com/lecms/plugin/le_special_pro/conf.php
      • #36 /www/wwwroot/www.pjwan.com/lecms/plugin/le_spider/conf.php
      • #37 /www/wwwroot/www.pjwan.com/lecms/plugin/le_super_sitemap/conf.php
      • #38 /www/wwwroot/www.pjwan.com/lecms/plugin/le_title_pic/conf.php
      • #39 /www/wwwroot/www.pjwan.com/lecms/plugin/le_use_del_id/conf.php
      • #40 /www/wwwroot/www.pjwan.com/lecms/plugin/le_webp_oss/conf.php
      • #41 /www/wwwroot/www.pjwan.com/lecms/plugin/le_website_group/conf.php
      • #42 /www/wwwroot/www.pjwan.com/lecms/plugin/le_zhanqunsitemaps_pro_v303/conf.php
      • #43 /www/wwwroot/www.pjwan.com/lecms/plugin/lu_huochetou/conf.php
      • #44 /www/wwwroot/www.pjwan.com/lecms/plugin/models_filed/conf.php
      • #45 /www/wwwroot/www.pjwan.com/lecms/plugin/qrcode/conf.php
      • #46 /www/wwwroot/www.pjwan.com/lecms/plugin/sy_mobile/conf.php
      • #47 /www/wwwroot/www.pjwan.com/runcache/misc.func.php
      • #48 /www/wwwroot/www.pjwan.com/runcache/core_lang/zh-cn.php
      • #49 /www/wwwroot/www.pjwan.com/runcache/lang/zh-cn.php
      • #50 /www/wwwroot/www.pjwan.com/runcache/lecms_control/parseurl_control.class.php
      • #51 /www/wwwroot/www.pjwan.com/lecms/xiunophp/tpl/exception.php

      其他信息

      • 请求路径: /rjjc/63156.html
      • 当前时间: 2026-08-20 16:10:02
      • 当前网协: 216.73.216.186
      • 运行时间: 2.2964
      • 内存开销: 134.51 KB
        Lecms 3.0.3