^ app\Request {#26 #pathinfoFetch: array:3 [ 0 => "ORIG_PATH_INFO" 1 => "REDIRECT_PATH_INFO" 2 => "REDIRECT_URL" ] #varPathinfo: "s" #varMethod: "_method" #varAjax: "_ajax" #varPjax: "_pjax" #rootDomain: "" #httpsAgentName: "" #proxyServerIp: [] #proxyServerIpHeader: array:5 [ 0 => "HTTP_X_REAL_IP" 1 => "HTTP_X_FORWARDED_FOR" 2 => "HTTP_CLIENT_IP" 3 => "HTTP_X_CLIENT_IP" 4 => "HTTP_X_CLUSTER_CLIENT_IP" ] #method: "GET" #domain: null #host: null #subDomain: "www" #panDomain: null #url: null #baseUrl: null #baseFile: null #root: null #pathinfo: "hy_news/29/G5497M50.html" #path: null #realIP: null #controller: "Index" #action: "info" #param: [] #get: [] #post: [] #request: [] #rule: think\route\RuleItem {#51 #miss: false #autoOption: true #name: "index/info" #domain: null #router: think\Route {#41 #rest: array:7 [ "index" => array:3 [ 0 => "get" 1 => "" 2 => "index" ] "create" => array:3 [ 0 => "get" 1 => "/create" 2 => "create" ] "edit" => array:3 [ 0 => "get" 1 => "/<id>/edit" 2 => "edit" ] "read" => array:3 [ 0 => "get" 1 => "/<id>" 2 => "read" ] "save" => array:3 [ 0 => "post" 1 => "" 2 => "save" ] "update" => array:3 [ 0 => "put" 1 => "/<id>" 2 => "update" ] "delete" => array:3 [ 0 => "delete" 1 => "/<id>" 2 => "delete" ] ] #config: array:21 [ "pathinfo_depr" => "/" "url_lazy_route" => false "url_route_must" => false "route_rule_merge" => false "route_complete_match" => false "remove_slash" => false "route_annotation" => false "default_route_pattern" => "[\w\.]+" "url_html_suffix" => "html" "controller_layer" => "controller" "empty_controller" => "Error" "controller_suffix" => false "default_controller" => "Index" "default_action" => "index" "action_suffix" => "" "url_common_param" => true "request_cache_key" => true "request_cache_expire" => 0 "request_cache_except" => [] "default_jsonp_handler" => "jsonpReturn" "var_jsonp_handler" => "callback" ] #app: think\App {#3 #appDebug: false #beginTime: 1766116983.4667 #beginMem: 742704 #namespace: "app\index" #rootPath: "/var/www/html/" #thinkPath: "/var/www/html/vendor/topthink/framework/src/" #appPath: "/var/www/html/app/index/" #runtimePath: "/var/www/html/runtime/index/" #routePath: "" #configExt: ".php" #initializers: array:3 [ 0 => "think\initializer\Error" 1 => "think\initializer\RegisterService" 2 => "think\initializer\BootService" ] #services: array:6 [ 0 => app\AppService {#2 #app: think\App {#3} } 1 => think\service\PaginatorService {#7 #app: think\App {#3} } 2 => think\service\ValidateService {#12 #app: think\App {#3} } 3 => think\service\ModelService {#13 #app: think\App {#3} } 4 => think\app\Service {#14 #app: think\App {#3} } 5 => think\trace\Service {#15 #app: think\App {#3} } ] #initialized: true #bind: array:27 [ "app" => "think\App" "cache" => "think\Cache" "config" => "think\Config" "console" => "think\Console" "cookie" => "think\Cookie" "db" => "think\Db" "env" => "think\Env" "event" => "think\Event" "http" => "think\Http" "lang" => "think\Lang" "log" => "think\Log" "middleware" => "think\Middleware" "request" => "think\Request" "response" => "think\Response" "route" => "think\Route" "session" => "think\Session" "validate" => "think\Validate" "view" => "think\View" "filesystem" => "think\Filesystem" "think\DbManager" => "think\Db" "think\LogManager" => "think\Log" "think\CacheManager" => "think\Cache" "Psr\Log\LoggerInterface" => "think\Log" "think\Request" => "app\Request" "think\exception\Handle" => "app\ExceptionHandle" "think\Paginator" => "think\paginator\driver\Bootstrap" "think\route\Url" => "think\app\Url" ] #instances: array:18 [ "think\App" => think\App {#3} "think\Container" => think\App {#3} "think\Http" => think\Http {#6 #app: think\App {#3} #name: "index" #path: null #routePath: "/var/www/html/app/index/route/" #isBind: false } "think\Env" => think\Env {#5 #data: array:38 [ "HOSTNAME" => "e9dade6b462f" "PHP_VERSION" => "7.4.15" "APACHE_CONFDIR" => "/etc/apache2" "PHP_INI_DIR" => "/usr/local/etc/php" "GPG_KEYS" => "42670A7FE4D0441C8E4632349E4FDC074A4EF02D 5A52880781F755608BF815FC910DEB46F53EA312" "PHP_LDFLAGS" => "-Wl,-O1 -pie" "PWD" => "/var/www/html" "TZ" => "Asia/Shanghai" "APACHE_LOG_DIR" => "/var/log/apache2" "LANG" => "C" "PHP_SHA256" => "9b859c65f0cf7b3eff9d4a28cfab719fb3d36a1db3c20d874a79b5ec44d43cb8" "APACHE_PID_FILE" => "/var/run/apache2/apache2.pid" "PHPIZE_DEPS" => "autoconf \t\tdpkg-dev \t\tfile \t\tg++ \t\tgcc \t\tlibc-dev \t\tmake \t\tpkg-config \t\tre2c" "PHP_URL" => "https://www.php.net/distributions/php-7.4.15.tar.xz" "APACHE_RUN_GROUP" => "www-data" "APACHE_LOCK_DIR" => "/var/lock/apache2" "PHP_EXTRA_CONFIGURE_ARGS" => "--with-apxs2 --disable-cgi" "SHLVL" => "0" "PHP_CFLAGS" => "-fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" "APACHE_RUN_DIR" => "/var/run/apache2" "APACHE_ENVVARS" => "/etc/apache2/envvars" "APACHE_RUN_USER" => "www-data" "PATH" => "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" "PHP_EXTRA_BUILD_DEPS" => "apache2-dev" "PHP_ASC_URL" => "https://www.php.net/distributions/php-7.4.15.tar.xz.asc" "PHP_CPPFLAGS" => "-fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" "APP_DEBUG" => "" "APP_DEFAULT_TIMEZONE" => "Asia/Shanghai" "DATABASE_TYPE" => "mysql" "DATABASE_HOSTNAME" => "192.168.88.88" "DATABASE_DATABASE" => "szhzywl" "DATABASE_USERNAME" => "hzy_web" "DATABASE_PASSWORD" => "hzy_24678_mydb" "DATABASE_HOSTPORT" => "3306" "DATABASE_CHARSET" => "utf8" "DATABASE_DEBUG" => "1" "DATABASE_PREFIX" => "web_" "LANG_DEFAULT_LANG" => "zh-cn" ] } "think\Config" => think\Config {#8 #config: array:13 [ "app" => array:12 [ "app_host" => "" "app_namespace" => "" "with_route" => true "app_express" => true "default_app" => "index" "default_timezone" => "Asia/Shanghai" "app_map" => [] "domain_bind" => [] "deny_app_list" => [] "exception_tmpl" => "/var/www/html/vendor/topthink/framework/src/tpl/think_exception.tpl" "error_message" => "页面错误!请稍后再试~" "show_error_msg" => false ] "cache" => array:2 [ "default" => "file" "stores" => array:1 [ "file" => array:6 [ "type" => "File" "path" => "" "prefix" => "" "expire" => 0 "tag_prefix" => "tag:" "serialize" => [] ] ] ] "console" => array:1 [ "commands" => [] ] "cookie" => array:7 [ "expire" => 0 "path" => "/" "domain" => "" "secure" => false "httponly" => false "setcookie" => true "samesite" => "" ] "database" => array:5 [ "default" => "mysql" "time_query_rule" => [] "auto_timestamp" => true "datetime_format" => "Y-m-d H:i:s" "connections" => array:1 [ "mysql" => array:17 [ "type" => "mysql" "hostname" => "192.168.88.88" "database" => "szhzywl" "username" => "hzy_web" "password" => "hzy_24678_mydb" "hostport" => "3306" "params" => [] "charset" => "utf8" "prefix" => "web_" "deploy" => 0 "rw_separate" => false "master_num" => 1 "slave_no" => "" "fields_strict" => true "break_reconnect" => false "trigger_sql" => "" "fields_cache" => false ] ] ] "filesystem" => array:2 [ "default" => "local" "disks" => array:2 [ "local" => array:2 [ "type" => "local" "root" => "/var/www/html/runtime/bucket" ] "public" => array:4 [ "type" => "local" "root" => "/var/www/html/public/static/bucket" "url" => "/static/bucket" "visibility" => "public" ] ] ] "lang" => array:9 [ "default_lang" => "zh-cn" "allow_lang_list" => [] "detect_var" => "lang" "use_cookie" => true "cookie_var" => "think_lang" "header_var" => "think-lang" "extend_list" => [] "accept_language" => array:1 [ "zh-hans-cn" => "zh-cn" ] "allow_group" => false ] "log" => array:6 [ "default" => "file" "level" => [] "type_channel" => [] "close" => false "processor" => null "channels" => array:1 [ "file" => array:10 [ "type" => "File" "path" => "" "single" => false "apart_level" => [] "max_files" => 0 "json" => false "processor" => null "close" => false "format" => "[%s][%s] %s" "realtime_write" => false ] ] ] "middleware" => array:2 [ "alias" => [] "priority" => [] ] "route" => array:19 [ "pathinfo_depr" => "/" "url_html_suffix" => "html" "url_common_param" => true "url_lazy_route" => false "url_route_must" => false "route_rule_merge" => false "route_complete_match" => false "controller_layer" => "controller" "empty_controller" => "Error" "controller_suffix" => false "default_route_pattern" => "[\w\.]+" "request_cache_key" => true "request_cache_expire" => 0 "request_cache_except" => [] "default_controller" => "Index" "default_action" => "index" "action_suffix" => "" "default_jsonp_handler" => "jsonpReturn" "var_jsonp_handler" => "callback" ] "session" => array:6 [ "name" => "PHPSESSID" "var_session_id" => "" "type" => "file" "store" => null "expire" => 14400 "prefix" => "" ] "trace" => array:2 [ "type" => "Html" "channel" => "" ] "view" => array:10 [ "type" => "Think" "auto_rule" => 1 "view_dir_name" => "view" "view_suffix" => "html" "view_depr" => "/" "tpl_begin" => "{" "tpl_end" => "}" "taglib_begin" => "{" "taglib_end" => "}" "tpl_replace_string" => array:8 [ "__PUBLIC__" => "/" "__STATIC__" => "/static" "__LIB__" => "/static/lib" "__ADMIN__" => "/static/admin" "__INDEX__" => "/static/index" "__LOCAL_UPLOAD__" => think\app\Url {#49 #app: think\App {#3} #route: think\Route {#41} #vars: [] #url: "/admin/adminAccount/local_upload" #root: "" #https: null #suffix: true #domain: false : "/admin/adminAccount/local_upload" : [] : true : false } "__REMOTE_UPLOAD__" => think\app\Url {#50 #app: think\App {#3} #route: think\Route {#41} #vars: [] #url: "/admin/adminAccount/remote_upload" #root: "" #https: null #suffix: true #domain: false : "/admin/adminAccount/remote_upload" : [] : true : false } "__IMG_URL__" => "" ] ] ] #path: "/var/www/html/config/" #ext: ".php" } "think\Event" => think\Event {#9 #listener: array:5 [ "think\event\AppInit" => [] "think\event\HttpRun" => array:1 [ 0 => Closure() {#24 : "think\app\Service" : think\app\Service {#14} } ] "think\event\HttpEnd" => [] "LogLevel" => [] "think\event\LogWrite" => [] ] #bind: array:5 [ "AppInit" => "think\event\AppInit" "HttpRun" => "think\event\HttpRun" "HttpEnd" => "think\event\HttpEnd" "RouteLoaded" => "think\event\RouteLoaded" "LogWrite" => "think\event\LogWrite" ] #app: think\App {#3} } "think\Lang" => think\Lang {#11 #config: array:9 [ "default_lang" => "zh-cn" "allow_lang_list" => [] "use_cookie" => true "extend_list" => [] "cookie_var" => "think_lang" "header_var" => "think-lang" "detect_var" => "lang" "accept_language" => array:1 [ "zh-hans-cn" => "zh-cn" ] "allow_group" => false ] -lang: array:1 [ "zh-cn" => array:126 [ "undefined variable" => "未定义变量" "undefined index" => "未定义数组索引" "undefined offset" => "未定义数组下标" "parse error" => "语法解析错误" "type error" => "类型错误" "fatal error" => "致命错误" "syntax error" => "语法错误" "dispatch type not support" => "不支持的调度类型" "method param miss" => "方法参数错误" "method not exists" => "方法不存在" "function not exists" => "函数不存在" "app not exists" => "应用不存在" "controller not exists" => "控制器不存在" "class not exists" => "类不存在" "property not exists" => "类的属性不存在" "template not exists" => "模板文件不存在" "illegal controller name" => "非法的控制器名称" "illegal action name" => "非法的操作名称" "url suffix deny" => "禁止的URL后缀访问" "undefined cache config" => "缓存配置未定义" "route not found" => "当前访问路由未定义或不匹配" "undefined db config" => "数据库配置未定义" "undefined log config" => "日志配置未定义" "undefined db type" => "未定义数据库类型" "variable type error" => "变量类型错误" "psr-4 error" => "PSR-4 规范错误" "not support type" => "不支持的分页索引字段类型" "not support total" => "简洁模式下不能获取数据总数" "not support last" => "简洁模式下不能获取最后一页" "error session handler" => "错误的SESSION处理器类" "not allow php tag" => "模板不允许使用PHP语法" "not support" => "不支持" "database config error" => "数据库配置信息错误" "redisd master" => "Redisd 主服务器错误" "redisd slave" => "Redisd 从服务器错误" "must run at sae" => "必须在SAE运行" "memcache init error" => "未开通Memcache服务,请在SAE管理平台初始化Memcache服务" "kvdb init error" => "没有初始化KVDB,请在SAE管理平台初始化KVDB服务" "fields not exists" => "数据表字段不存在" "where express error" => "查询表达式错误" "no data to update" => "没有任何数据需要更新" "miss data to insert" => "缺少需要写入的数据" "miss complex primary data" => "缺少复合主键数据" "miss update condition" => "缺少更新条件" "model data not found" => "模型数据不存在" "table data not found" => "表数据不存在" "delete without condition" => "没有条件不会执行删除操作" "miss relation data" => "缺少关联表数据" "tag attr must" => "模板标签属性必须" "tag error" => "模板标签错误" "cache write error" => "缓存写入失败" "sae mc write error" => "SAE mc 写入错误" "route name not exists" => "路由标识不存在(或参数不够)" "invalid request" => "非法请求" "bind attr has exists" => "模型的属性已经存在" "relation data not exists" => "关联数据不存在" "relation not support" => "关联不支持" "chunk not support order" => "Chunk不支持调用order方法" "route pattern error" => "路由变量规则定义错误" "route behavior will not support" => "路由行为废弃(使用中间件替代)" "closure not support cache(true)" => "使用闭包查询不支持cache(true),请指定缓存Key" "unknown upload error" => "未知上传错误!" "file write error" => "文件写入失败!" "upload temp dir not found" => "找不到临时文件夹!" "no file to uploaded" => "没有文件被上传!" "only the portion of file is uploaded" => "文件只有部分被上传!" "upload file size exceeds the maximum value" => "上传文件大小超过了最大值!" "upload write error" => "文件上传保存错误!" "has the same filename: {:filename}" => "存在同名文件:{:filename}" "upload illegal files" => "非法上传文件" "illegal image files" => "非法图片文件" "extensions to upload is not allowed" => "上传文件后缀不允许" "mimetype to upload is not allowed" => "上传文件MIME类型不允许!" "filesize not match" => "上传文件大小不符!" "directory {:path} creation failed" => "目录 {:path} 创建失败!" "the middleware must return response instance" => "中间件方法必须返回Response对象实例" "the queue was exhausted, with no response returned" => "中间件队列为空" ":attribute require" => ":attribute不能为空" ":attribute must" => ":attribute必须" ":attribute must be numeric" => ":attribute必须是数字" ":attribute must be integer" => ":attribute必须是整数" ":attribute must be float" => ":attribute必须是浮点数" ":attribute must be bool" => ":attribute必须是布尔值" ":attribute not a valid email address" => ":attribute格式不符" ":attribute not a valid mobile" => ":attribute格式不符" ":attribute must be a array" => ":attribute必须是数组" ":attribute must be yes,on or 1" => ":attribute必须是yes、on或者1" ":attribute not a valid datetime" => ":attribute不是一个有效的日期或时间格式" ":attribute not a valid file" => ":attribute不是有效的上传文件" ":attribute not a valid image" => ":attribute不是有效的图像文件" ":attribute must be alpha" => ":attribute只能是字母" ":attribute must be alpha-numeric" => ":attribute只能是字母和数字" ":attribute must be alpha-numeric, dash, underscore" => ":attribute只能是字母、数字和下划线_及破折号-" ":attribute not a valid domain or ip" => ":attribute不是有效的域名或者IP" ":attribute must be chinese" => ":attribute只能是汉字" ":attribute must be chinese or alpha" => ":attribute只能是汉字、字母" ":attribute must be chinese,alpha-numeric" => ":attribute只能是汉字、字母和数字" ":attribute must be chinese,alpha-numeric,underscore, dash" => ":attribute只能是汉字、字母、数字和下划线_及破折号-" ":attribute not a valid url" => ":attribute不是有效的URL地址" ":attribute not a valid ip" => ":attribute不是有效的IP地址" ":attribute must be dateformat of :rule" => ":attribute必须使用日期格式 :rule" ":attribute must be in :rule" => ":attribute必须在 :rule 范围内" ":attribute be notin :rule" => ":attribute不能在 :rule 范围内" ":attribute must between :1 - :2" => ":attribute只能在 :1 - :2 之间" ":attribute not between :1 - :2" => ":attribute不能在 :1 - :2 之间" "size of :attribute must be :rule" => ":attribute长度不符合要求 :rule" "max size of :attribute must be :rule" => ":attribute长度不能超过 :rule" "min size of :attribute must be :rule" => ":attribute长度不能小于 :rule" ":attribute cannot be less than :rule" => ":attribute日期不能小于 :rule" ":attribute cannot exceed :rule" => ":attribute日期不能超过 :rule" ":attribute not within :rule" => "不在有效期内 :rule" "access ip is not allowed" => "不允许的IP访问" "access ip denied" => "禁止的IP访问" ":attribute out of accord with :2" => ":attribute和确认字段:2不一致" ":attribute cannot be same with :2" => ":attribute和比较字段:2不能相同" ":attribute must greater than or equal :rule" => ":attribute必须大于等于 :rule" ":attribute must greater than :rule" => ":attribute必须大于 :rule" ":attribute must less than or equal :rule" => ":attribute必须小于等于 :rule" ":attribute must less than :rule" => ":attribute必须小于 :rule" ":attribute must equal :rule" => ":attribute必须等于 :rule" ":attribute has exists" => ":attribute已存在" ":attribute not conform to the rules" => ":attribute不符合指定规则" "invalid request method" => "无效的请求类型" "invalid token" => "令牌数据无效" "not conform to the rules" => "规则错误" "record has update" => "记录已经被更新了" ] ] -range: "zh-cn" } "think\initializer\Error" => think\initializer\Error {#4 #app: think\App {#3} } "think\initializer\RegisterService" => think\initializer\RegisterService {#10 #services: array:3 [ 0 => "think\service\PaginatorService" 1 => "think\service\ValidateService" 2 => "think\service\ModelService" ] } "think\Middleware" => think\Middleware {#19 #queue: array:1 [ "global" => array:2 [ 0 => array:2 [ 0 => array:2 [ 0 => "think\trace\TraceDebug" 1 => "handle" ] 1 => [] ] 1 => array:2 [ 0 => array:2 [ 0 => "think\app\MultiApp" 1 => "handle" ] 1 => [] ] ] ] #app: think\App {#3} } "think\initializer\BootService" => think\initializer\BootService {#16} "think\Log" => think\Log {#34 #namespace: "\think\log\driver\" #app: think\App {#3} #drivers: [] } "think\Cache" => think\Cache {#35 #namespace: "\think\cache\driver\" #app: think\App {#3} #drivers: array:1 [ "file" => think\cache\driver\File {#30 #options: array:9 [ "expire" => 0 "cache_subdir" => true "prefix" => "" "path" => "/var/www/html/runtime/cache/" "hash_type" => "md5" "data_compress" => false "tag_prefix" => "tag:" "serialize" => [] "type" => "File" ] #handler: null #readTimes: 0 #writeTimes: 0 #tag: [] } ] } "think\Db" => think\Db {#32 #instance: [] #config: think\Config {#8} #event: think\Event {#9} #listen: [] #dbLog: [] #queryTimes: 0 #cache: think\cache\driver\File {#30} #log: think\Log {#34} } "app\Request" => app\Request {#26} "think\trace\TraceDebug" => think\trace\TraceDebug {#42 #log: [] #config: array:2 [ "type" => "Html" "channel" => "" ] #app: think\App {#3} } "think\app\MultiApp" => think\app\MultiApp {#39 #app: think\App {#3} #name: "" #appName: "index" #path: "" } "think\Route" => think\Route {#41} ] #invokeCallback: [] } #request: app\Request {#26} #ruleName: think\route\RuleName {#40 #item: array:5 [ "upload" => array:1 [ 0 => array:4 [ "rule" => "guest/upload" "domain" => "www.szhzywl.com" "method" => "post" "suffix" => null ] ] "send_resume" => array:1 [ 0 => array:4 [ "rule" => "guest/send_resume" "domain" => "www.szhzywl.com" "method" => "post" "suffix" => null ] ] "send_message" => array:1 [ 0 => array:4 [ "rule" => "guest/send_message" "domain" => "www.szhzywl.com" "method" => "post" "suffix" => null ] ] "index/info" => array:1 [ 0 => array:4 [ "rule" => "<name>/<id>/<sn>" "domain" => "www.szhzywl.com" "method" => "get" "suffix" => null ] ] "index/page" => array:2 [ 0 => array:4 [ "rule" => "<name>/<id>" "domain" => "www.szhzywl.com" "method" => "get" "suffix" => null ] 1 => array:4 [ "rule" => "<name>" "domain" => "www.szhzywl.com" "method" => "get" "suffix" => null ] ] ] #rule: array:6 [ "guest/upload" => array:1 [ "upload" => think\route\RuleItem {#54 #miss: false #autoOption: true #name: "upload" #domain: null #router: think\Route {#41} #parent: think\route\RuleGroup {#52 #rules: array:6 [ 0 => array:2 [ 0 => "post" 1 => think\route\RuleItem {#54} ] 1 => array:2 [ 0 => "options" 1 => think\route\RuleItem {#54} ] 2 => array:2 [ 0 => "post" 1 => think\route\RuleItem {#55 #miss: false #autoOption: true #name: "send_resume" #domain: null #router: think\Route {#41} #parent: think\route\RuleGroup {#52} #rule: "guest/send_resume" #route: "send_resume" #method: "post" #vars: [] #option: [] #pattern: [] #mergeOptions: array:3 [ 0 => "model" 1 => "append" 2 => "middleware" ] : "send_resume" : "guest/send_resume" : "send_resume" : "post" : [] : [] : [] } ] 3 => array:2 [ 0 => "options" 1 => think\route\RuleItem {#55} ] 4 => array:2 [ 0 => "post" 1 => think\route\RuleItem {#56 #miss: false #autoOption: true #name: "send_message" #domain: null #router: think\Route {#41} #parent: think\route\RuleGroup {#52} #rule: "guest/send_message" #route: "send_message" #method: "post" #vars: [] #option: [] #pattern: [] #mergeOptions: array:3 [ 0 => "model" 1 => "append" 2 => "middleware" ] : "send_message" : "guest/send_message" : "send_message" : "post" : [] : [] : [] } ] 5 => array:2 [ 0 => "options" 1 => think\route\RuleItem {#56} ] ] #rule: null #miss: null #fullName: "guest" #alias: null #name: "guest" #domain: "www.szhzywl.com" #router: think\Route {#41} #parent: think\route\Domain {#47 #rules: array:7 [ 0 => array:2 [ 0 => "*" 1 => think\route\RuleGroup {#52} ] 1 => array:2 [ 0 => "get" 1 => think\route\RuleItem {#51} ] 2 => array:2 [ 0 => "options" 1 => think\route\RuleItem {#51} ] 3 => array:2 [ 0 => "get" 1 => think\route\RuleItem {#53 #miss: false #autoOption: true #name: "index/page" #domain: null #router: think\Route {#41} #parent: think\route\Domain {#47} #rule: "<name>/<id>" #route: "index/page" #method: "get" #vars: [] #option: [] #pattern: [] #mergeOptions: array:3 [ 0 => "model" 1 => "append" 2 => "middleware" ] : "index/page" : "<name>/<id>" : "index/page" : "get" : [] : [] : [] } ] 4 => array:2 [ 0 => "options" 1 => think\route\RuleItem {#53} ] 5 => array:2 [ 0 => "get" 1 => think\route\RuleItem {#57 #miss: false #autoOption: true #name: "index/page" #domain: null #router: think\Route {#41} #parent: think\route\Domain {#47} #rule: "<name>" #route: "index/page" #method: "get" #vars: [] #option: [] #pattern: [] #mergeOptions: array:3 [ 0 => "model" 1 => "append" 2 => "middleware" ] : "index/page" : "<name>" : "index/page" : "get" : [] : [] : [] } ] 6 => array:2 [ 0 => "options" 1 => think\route\RuleItem {#57} ] ] #rule: null #miss: null #fullName: null #alias: null #name: null #domain: "www.szhzywl.com" #router: think\Route {#41} #parent: null #route: null #method: null #vars: [] #option: array:2 [ "remove_slash" => false "merge_rule_regex" => false ] #pattern: array:3 [ "name" => "\w+" "id" => "\d+" "sn" => "\w+" ] #mergeOptions: array:3 [ 0 => "model" 1 => "append" 2 => "middleware" ] : null : null : null : null : [] : array:2 [ "remove_slash" => false "merge_rule_regex" => false ] : array:3 [ "name" => "\w+" "id" => "\d+" "sn" => "\w+" ] } #route: null #method: null #vars: [] #option: array:3 [ "remove_slash" => false "merge_rule_regex" => false "prefix" => "guest/" ] #pattern: [] #mergeOptions: array:3 [ 0 => "model" 1 => "append" 2 => "middleware" ] : "guest" : null : null : null : [] : array:3 [ "remove_slash" => false "merge_rule_regex" => false "prefix" => "guest/" ] : [] } #rule: "guest/upload" #route: "upload" #method: "post" #vars: [] #option: [] #pattern: [] #mergeOptions: array:3 [ 0 => "model" 1 => "append" 2 => "middleware" ] : "upload" : "guest/upload" : "upload" : "post" : [] : [] : [] } ] "guest/send_resume" => array:1 [ "send_resume" => think\route\RuleItem {#55} ] "guest/send_message" => array:1 [ "send_message" => think\route\RuleItem {#56} ] "<name>/<id>/<sn>" => array:1 [ "index/info" => think\route\RuleItem {#51} ] "<name>/<id>" => array:1 [ "index/page" => think\route\RuleItem {#53} ] "<name>" => array:1 [ "index/page" => think\route\RuleItem {#57} ] ] #group: array:1 [ "guest" => think\route\RuleGroup {#52} ] } #host: "www.szhzywl.com" #group: think\route\Domain {#43 #rules: [] #rule: null #miss: null #fullName: null #alias: null #name: null #domain: null #router: think\Route {#41} #parent: null #route: null #method: null #vars: [] #option: array:1 [ "remove_slash" => false ] #pattern: [] #mergeOptions: array:3 [ 0 => "model" 1 => "append" 2 => "middleware" ] : null : null : null : null : [] : array:1 [ "remove_slash" => false ] : [] } #bind: [] #domains: array:3 [ "-" => think\route\Domain {#43} "www.szhzywl.com" => think\route\Domain {#47} "szhzywl.com" => "www.szhzywl.com" ] #cross: null #lazy: false #isTest: false #mergeRuleRegex: false #removeSlash: false } #parent: think\route\Domain {#47} #rule: "<name>/<id>/<sn>" #route: "index/info" #method: "get" #vars: array:3 [ "name" => "hy_news" "id" => "29" "sn" => "G5497M50" ] #option: [] #pattern: [] #mergeOptions: array:3 [ 0 => "model" 1 => "append" 2 => "middleware" ] : "index/info" : "<name>/<id>/<sn>" : "index/info" : "get" : array:3 [ "name" => "hy_news" "id" => "29" "sn" => "G5497M50" ] : [] : [] } #route: array:3 [ "name" => "hy_news" "id" => "29" "sn" => "G5497M50" ] #middleware: [] #put: [] #session: null #cookie: [] #env: think\Env {#5} #server: array:37 [ "REDIRECT_STATUS" => "200" "HTTP_HOST" => "www.szhzywl.com" "HTTP_X_REAL_IP" => "216.73.216.80" "HTTP_X_FORWARDED_FOR" => "216.73.216.80" "HTTP_X_FORWARDED_PROTO" => "https" "HTTP_CONNECTION" => "close" "HTTP_ACCEPT" => "*/*" "HTTP_USER_AGENT" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" "HTTP_ACCEPT_ENCODING" => "gzip, br, zstd, deflate" "PATH" => "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" "SERVER_SIGNATURE" => "<address>Apache/2.4.38 (Debian) Server at www.szhzywl.com Port 80</address>\n" "SERVER_SOFTWARE" => "Apache/2.4.38 (Debian)" "SERVER_NAME" => "www.szhzywl.com" "SERVER_ADDR" => "192.168.88.4" "SERVER_PORT" => "80" "REMOTE_ADDR" => "192.168.88.1" "DOCUMENT_ROOT" => "/var/www/html/public" "REQUEST_SCHEME" => "http" "CONTEXT_PREFIX" => "" "CONTEXT_DOCUMENT_ROOT" => "/var/www/html/public" "SERVER_ADMIN" => "[no address given]" "SCRIPT_FILENAME" => "/var/www/html/public/index.php" "REMOTE_PORT" => "58118" "REDIRECT_URL" => "/hy_news/29/G5497M50.html" "GATEWAY_INTERFACE" => "CGI/1.1" "SERVER_PROTOCOL" => "HTTP/1.0" "REQUEST_METHOD" => "GET" "QUERY_STRING" => "" "REQUEST_URI" => "/hy_news/29/G5497M50.html" "SCRIPT_NAME" => "/index.php" "PATH_INFO" => "/hy_news/29/G5497M50.html" "PATH_TRANSLATED" => "redirect:/index.php/hy_news/29/G5497M50.html/29/G5497M50.html" "PHP_SELF" => "/index.php/hy_news/29/G5497M50.html" "REQUEST_TIME_FLOAT" => 1766116983.4642 "REQUEST_TIME" => 1766116983 "argv" => [] "argc" => 0 ] #file: [] #header: array:8 [ "host" => "www.szhzywl.com" "x-real-ip" => "216.73.216.80" "x-forwarded-for" => "216.73.216.80" "x-forwarded-proto" => "https" "connection" => "close" "accept" => "*/*" "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" "accept-encoding" => "gzip, br, zstd, deflate" ] #mimeType: array:12 [ "xml" => "application/xml,text/xml,application/x-xml" "json" => "application/json,text/x-json,application/jsonrequest,text/json" "js" => "text/javascript,application/javascript,application/x-javascript" "css" => "text/css" "rss" => "application/rss+xml" "yaml" => "application/x-yaml,text/yaml" "atom" => "application/atom+xml" "pdf" => "application/pdf" "text" => "text/plain" "image" => "image/png,image/jpg,image/jpeg,image/pjpeg,image/gif,image/webp,image/*" "csv" => "text/csv" "html" => "text/html,application/xhtml+xml,*/*" ] #content: null #filter: null #input: "" #secureKey: null #mergeParam: false }
中央三令五申要求支持企业自主创新。然而,企业耗费人力物力突破核心技术“卡脖子”,研发出的第一台(套)重大技术装备(简称“首台套”),却被市场门槛卡了脖子。
半月谈记者调研发现,“首台套”面临着买方设置的应用业绩、设备参数等市场门槛,在招投标中很难入围,即使侥幸入围,也往往在评审环节遭遇“国产歧视”而出局,企业自主创新积极性受到打击,其背后存在的自主创新“后半篇文章”亟待引起关注。
打破国外垄断,却难卖出第一台
企业突破核心技术“卡脖子”问题,研发出“首台套”后,迎接他们的常常并不是市场的青睐,而是买方设置的重重门槛。
门槛一:应用业绩槛——“鸡生蛋蛋生鸡”的死循环。
西部省份某企业自主研发的超级电容器,打破日韩企业垄断,获得多项国家级发明专利,却屡屡被客户提出的应用业绩要求拒之门外。“许多客户明明知道我们的产品是‘首台套’,以前国内没有,还是提出‘应用1万台以上’或‘应用3年以上’等要求。”公司负责人说,“没有应用业绩,客户就不会用我们的产品;客户不用我们的产品,就更没有应用业绩。”
多家企业负责人表示,这些条件看起来合理,毕竟企业都希望采购成熟产品。但如果所有买方都提出类似要求,“首台套”很难实现广泛应用。
门槛二:设备参数槛——直接排挤国产设备的“硬杠杠”。
某医疗设备企业经过多年研发,成功打破国外企业垄断的血液透析技术,研发出具有自主知识产权的血液透析机。如今在全国各地的招投标中,却屡屡因不符合客户要求的设备参数而出局。“客户要求的设备参数,往往只有其中一家进口产品符合要求,相当于内定了。”这家企业负责人说,“我曾多次向客户提出质疑,对方却说这是专家团队论证的结果。”
门槛三:评审打分槛——评价标准里的“国产歧视”。
某集团自主研发出首台国产化H171-5MW海上风电机组,成功打破国外技术垄断。但在全国各地招投标中,这款“首台套”即使入围,也往往在评审环节被淘汰出局。“在评审环节,对进口设备和国产设备的评分标准差别很大,比如按零部件评分,进口轴承10分,国产轴承只有5分。”该集团销售公司副总经理说,在这种评价体系下,国产设备怎么可能中标呢?
某水泵厂总经理也曾多次在全国各地经历类似赤裸裸的“国产歧视”:“许多企业在招投标评分时,将产品分成三六九等,第一档是进口品牌、第二档是合资品牌、第三档才是国产品牌。”
半月谈记者走访发现,不少企业“首台套”研发成功后迟迟卖不出第一台,自主创新积极性备受打击。有企业负责人说:“谁创新谁吃亏,早知道投入这么大,做成了也卖不出去,不如老老实实做低端产品。”
客户不敢用不愿用,支持政策存落地难题
国产“首台套”四处碰壁,反映出企业自主创新产品在推广应用中面临的多重问题。
一是客户害怕承担风险“不敢用”。“就算进口设备买来第二天就坏了,也不会追究责任;如果换成国产设备,就算用了好几年才坏,也很有可能追究责任。”一家三甲医院负责人说。半月谈记者采访多位采购方发现,不少客户深知“首台套”对于国家自主创新的重要意义,但出于对国产设备不信任,担忧贸然使用国产“首台套”出问题后担责,“不敢用”的心态较为普遍。
二是客户对国外产品形成依赖“不愿用”。半月谈记者调研发现,许多国内企业已对国外设备形成路径依赖甚至心理依赖,不愿用国产“首台套”。“我们跟日本企业合作十多年了,一直合作得很愉快,尽管国产设备性能不错,价格也更便宜,但我们没必要承担风险,去更换新的产品。”一家生产智能水表的上市公司负责人说。
半月谈记者还了解到,外企依托国内代理商,多年深耕中国市场,与不少国内企业形成了牢固的利益捆绑,也成为客户不愿用国产“首台套”的原因之一。
三是“首台套”支持政策落地不畅。近年来,各地通过财政资金支持、保险补偿等方式,支持“首台套”市场推广,但相关政策存在与企业实际情况不符等问题,企业较难享受政策红利。“3年多来,我们一次都没享受过政策红利。”一家医疗设备企业说,政策要求单笔采购金额至少700万元才能申请保险补偿,而企业生产的设备单台价格10万元左右,单笔采购金额很难超过700万元。
同时不少企业反映,政策存在与企业研发周期不符、前期研究费用认定尚无明确标准等难题。另外,有政策要求“首台套”研发成功3年内必须达到一定销售量,才能享受补贴,企业往往很难达到要求。
自主创新“后半篇文章”亟待关注
如果说技术突破是自主创新的“前半篇文章”,那么市场突破就是自主创新的“后半篇文章”。目前,“前半篇文章”关注度较高,而“后半篇文章”鲜有人关注。多名“首台套”企业负责人呼吁:“自主创新不易,我们只想跟国外产品在同一起跑线上竞争。”
企业建议,进一步完善“首台套”保险补偿机制,增大财政资金对“首台套”投保的支持力度,修正不符合企业实际情况的政策,建立“首台套”设备制造全流程保险补偿机制,进一步简化申请手续。“在政策支持的同时,希望相关部门能为‘首台套’提供一些应用场景,可以小批量试用,有利于企业积累应用业绩,推动产品尽快商业化。”有企业负责人说。
多名“首台套”企业负责人建议,在制度层面进一步梳理、消除对“首台套”的歧视性条款。比如在招投标项目中,严格筛查招投标文件中“只限进口产品”等歧视性条款;在评审环节禁止用“双重标准”对待国产“首台套”;限制用应用业绩、设备参数排挤“首台套”的行为。
另外,可建立机制打消采购方选择“首台套”的顾虑。比如,明确规定在决策依法合规的情况下,由“首台套”技术故障等客观原因造成的损失,不应向采购决策者问责,形成敢买、愿买“首台套”的导向。