跳到内容
当前位置:首页>考公资料>判词与账册——论《文献通考》中“先公曰”与“端临按”的文本功能分化

判词与账册——论《文献通考》中“先公曰”与“端临按”的文本功能分化

  • 2026-11-03 16:10:17

判词与账册

——论《文献通考》中“先公曰”与

“端临按”的文本功能分化

马 伟

摘 要

本文提出并论证一种阅读假设:在《文献通考》中,马廷鸾的“先公曰”按语与马端临本人的“注”“按”承担不同的文本功能。前者以价值宣判为要,可概括为“定罪”;后者以事实编排与折衷为主,可概括为“纪数”。通过三则“先公曰”与一则“端临按”的对比分析,本文提炼“定罪”话语的历史主义时间结构、名实之辨、心性归因与判词式收束,并展示“纪数”话语的折衷方法、数据编排与事实中立。本文追溯这两种话语与《春秋》褒贬、汉代“原心定罪”、理学心性论的同构关系,并与朱熹《通鉴纲目》做一简要比较,最后说明这一框架的限度。本文并不主张已证明父子之间存在明确编纂分工,而是描述一种文本内部的客观机制:马端临在编纂层面对父亲话语功能的定位与分配。

关键词

文献通考;马廷鸾;先公曰;端临按;文本功能;朱熹

一、问题与学术史

《文献通考》三百四十八卷,马端临以“文”“献”“注”三层结构编纂。其《自序》云:“凡叙事,则本之经史……所谓文也。凡论事,则先取当时臣僚之奏疏,次及近代诸儒之评论……所谓献也。其载诸史传之纪录而可疑,稽诸先儒之论辨而未当者……则窃著己意,附其后焉,命其名曰注。”据此,“献”并非专指先公议论,而是臣僚奏疏、诸儒评论、名流燕谈、稗官纪录等可资订正典故、证定是非的言论总汇。马廷鸾之议论因冠以“先公曰”或“廷鸾曰”,构成“献”层中一种特殊而权威的声音,但不能说“献”之一层即“先公之议论”。

长期以来,学界对《文献通考》的研究重心置于马端临的“会通”思想及其与杜佑《通典》的比较之上。张舜徽《史学三书平议》对《通考》体例做了精到分析,但尚未将“端临按”与“先公曰”做功能上的区分。已有按语研究则多将按语整体视为马端临个人史识的直接表达,留下了一个盲点:马廷鸾的按语在全书结构中究竟承担何种功能?它与马端临本人的按语之间,是否存在性质上的差异?

本文试图提出一个分析框架来回应这一问题。需要首先说明:本文并不宣称已经“证明”父子之间存在明确的编纂分工约定。在现有史料条件下,这种证明几乎是不可能的。本文所论之“分化”,严格而言,是马端临在编纂层面对父亲话语功能的定位与分配,是子对父之话语的“职能化重组”,而不必等同于马廷鸾在世时的自我角色认知。本文的目的是提出一种“阅读假设”:用“定罪”与“纪数”这对概念来重读《文献通考》,是否能够发现一些仅凭传统研究路径所未能发现的意义层面?

本文选取三则“先公曰”按语(常平仓、和籴、免役钱)与一则“端临按”(盐法)作为分析样本。这四则按语并非随机抽样,而是基于其典型性的示例性选择——即按照论证需要选取最能展示功能分化特征的文本。本文的意图不在统计推断,而在机制展示:展示这对概念如何能够打开《文献通考》研究中一些此前未被充分注意的意义层面。至于全书中“先公曰”与“端临按”在价值判断强度、修辞方式与文本位置上的分布情况,则有待后续的全量统计与互文检验。

本文所引《文献通考》文字,据中华书局本,注释仅标卷次门类,不逐一标注页码。

二、核心概念的界定

“定罪”一词,本为中国传统法律审判的核心术语。《汉书·刑法志》载:“罪疑从轻,功疑从重,与杀不辜,宁失有罪。”至汉代,《春秋》决狱盛行,董仲舒提出“原心定罪”原则,即依据行为人的主观动机而非纯粹客观后果来判定罪责轻重。这一原则后被引入史学批评,成为史家衡量历史人物与制度之“罪”的重要方法。《春秋》本身即被视为一部“定罪”之书——孟子言“孔子成《春秋》而乱臣贼子惧”,正因其以“一字褒贬”的方式为历史人物“定罪”。本文所言“定罪”,取《春秋》“一字褒贬”、汉代“原心定罪”之古义,并兼取宋代理学“天理”标准,指基于理学原则对制度得失做出终极价值判断。

“纪数”一词,取《汉书·律历志》“数者,一十百千万也,所以算数事物,顺性命之理也”之义。但本文所谓“纪数”,并不局限于现代意义上的数量统计,而是指通过门类、时间、数据、制度沿革的编排,呈现制度运行的结构性事实。马端临将散见于正史各纪传中的制度资料,按门类和时间两个维度重新编织,使之成为可以纵向比较的制度沿革图景。本文所言“纪数”,指这一层面的文本功能,即事实编排与制度沿革之呈现。之所以不用“定量”,是为了避免将《文献通考》的“文”“注”层简单化为数量分析;《通考》中经籍、帝系、封建等考,显然不能以“定量”概括。

从认识论角度看,“定罪”与“纪数”分别对应历史研究的两个基本层面:价值判断与事实判断。价值判断回答“好不好”,事实判断回答“是什么”。二者互为前提:没有事实判断,价值判断便沦为空谈;没有价值判断,事实判断便缺乏意义。马氏父子的独特之处在于,他们似乎以某种方式将这两个层面在作者身份与文本层面上做了分离:父亲的声音多负责评判,儿子的编排多负责陈述。这一分离是否出于自觉,尚待考证;但它作为一种文本内部的客观机制,是可以被描述和分析的。

三、《文献通考》中的两种按语类型

(一)“先公曰”的“定罪”话语

1、四层递进的“诊断报告”:论常平仓

以卷二十三《市籴考二》论常平仓的一则按语为例,可以析出四个层层递进的论证层次。

第一层,制度沿革之“数”。马廷鸾首先追溯常平仓的本源——西汉耿寿昌“令边郡皆筑仓,以谷贱时增其贾而籴,谷贵时减贾而粜”,其立意“本以便民”。这一层的功能是确立评判的基准线:常平仓在其制度设计的原初意图中,是一项良法。没有这一历史追溯,“名存实亡”的判词便失去了参照系——“名”之所以为“名”,正因为它曾经对应着一个真实的“实”。

第二层,名实分离之“罪”。按语的锋芒在于揭示当下常平仓的运作实况:仓廪空虚,账目混乱,丰年不籴,歉年不粜,“徒有常平之名,而无常平之实”。南宋常平仓名存实亡是当时有识之士的普遍共识。《宋会要辑稿·食货》载信州常平仓“元申帐状管九万三千余石……及至盘粮,止得一万二千九百余石,皆是虚数”,即为明证。马廷鸾的判词,正是这些具体弊病的凝练表达。但他并未停留于罗列弊病,而是将问题提升到“名实”关系的高度——当一个制度的“名”与其“实”完全脱节,这个制度便已丧失了存在的正当性。“欺天害民”四字中的“欺天”,指向的是制度设计者与执行者对“天理”的背离;“害民”则是背离天理之后果的具体呈现。

第三层,心性归因之“判”。按语最具思想深度之处,在于将制度失败的根源归结于执政者的“心术”。马廷鸾论免役钱时曾断言“非法之罪,心之罪也”,常平仓按语遵循的是同一逻辑。常平仓之法本身并无过错——法之立意本在于“便民”;导致其名存实亡的,是执政者“务虚名而废实政”的心术。这一归因方式值得细究:它既避免了对具体历史人物的指名批评,又完成了对一种治理模式的整体性批判。马廷鸾在《碧梧玩芳集·论治体》中反复申说“天理者,人心之所同然,治道之本原也。政事之得失,视其合于天理与否而已”,常平仓按语中的“心性归因”,正是这一理学方法论在制度批判中的具体运用。

第四层,历史后果之“罚”。这则按语并非孤立存在。在马端临的编纂序列中,常平仓废弛的记载之后,紧接的是宋末民变与财政崩溃的叙述。读者在阅读序列中,自然会建立“常平仓名存实亡→民无所依→变乱滋生”的因果关联。马廷鸾并未直接书写“宋亡于常平之废”,但这层因果暗示已在文本的编排中悄然完成。父亲提供价值判词,儿子以史料序列铺设证据链,二者一明一暗,共同完成了对宋朝制度退化的诊断。

2、两则比较样本

将常平仓按语与另两则“先公曰”做比较,可以提炼出“定罪”话语的共性特征。

卷五《田赋考五》论和籴,马廷鸾言:“祖宗之世,和籴以济边储,民犹乐从;今之所谓和籴者,强抑民户,不给予直,甚至追呼鞭笞,视同逋负。是乃夺农以养兵,非和也。”此则按语与常平仓按语共享同一修辞模板:制度本意——制度异化——价值判词。“非和也”三字,正是判词式收束。

卷十四《职役考一》论免役钱,马廷鸾断言:“青苗、免役,本以惠民,而卒以害民,非法之罪,心之罪也。”此则按语的核心在于“心性归因”,与常平仓按语第三层逻辑直接对应。

3、“定罪”话语的共性特征

综合三则按语,可以提炼出“定罪”话语的四个共性特征。

其一,历史主义的时间结构。三则按语均以“祖宗之世”或“本以”与“今之”的时间对比为基本框架,通过追溯制度的原初意图来揭示当下的异化。这一时间结构的功能是双重的:在修辞层面,它使批判获得了“祖宗之法”或“良法本意”的权威背书;在思想层面,它建立了一种“制度退化论”的历史叙事——制度并非自然演化,而是被执政者的“心术”所扭曲。

其二,名实之辨的判断方法。“和籴”之名对应着“两厢情愿”之实,一旦强抑民户即为“夺”;“常平”之名对应着“平抑谷价”之实,一旦仓廪空虚即为“欺”;“免役”之名对应着“惠民”之初意,一旦害民即为“罪”。名实分离即是制度异化的标志,也是“定罪”的事实依据。

其三,心性归因的最终指向。三则按语的最终归因均指向“心”——执政者的心术。这一归因方式既是理学方法论的体现,也是特定政治环境下的修辞策略:它将对制度的批判转化为对“心术”的批判,从而避免了对具体政策或人物的直接攻击。

其四,判词式的收束方式。三则按语均不以“或然”“疑似”收束,而以“非和也”“心之罪也”“欺天害民”作结。这种句式与司法判词高度相似,使按语获得一种不容置疑的终审性质。

这里需要修正一个可能的过度概括。若以“以祖宗法反祖宗法”概括三则按语,对常平仓、和籴较为适用,对免役钱则不完全适用。青苗、免役本非宋初祖宗法,而是王安石新法。因此更稳妥的表述是:马廷鸾的批判参照系并不总是“祖宗法”,而是“制度本意”与“天理民极”。当制度本意与当下运行发生背离时,“定罪”便得以成立。

(二)“端临按”的“纪数”功能

以上分析聚焦于“先公曰”的“定罪”话语。但若要验证“定罪/纪数”的功能分化假设,还必须考察与之相对的“端临按”是否确实呈现出不同的文本功能。以下以《文献通考》卷十九《征榷考六》论宋代盐法的一则马端临按语为例。

按语中,马端临以时间顺序排列了从齐管仲到南宋淳熙年间的盐法沿革,每一朝代的盐法变革均以具体年份(建隆二年、雍熙四年、咸平六年、熙宁五年、元丰元年、元祐元年、崇宁元年、建炎二年、绍兴二年、乾道三年、淳熙五年)为节点,构成一条清晰的制度演变时间线。按语中出现了大量具体数据:盐利“岁才四十万缗”“六百余万缗”“盐利居半”;官职设置“三班院主盐铁”“买钞所”“都盐院”;制度细节“官自煮盐,亭户隶盐铁使”“盐户皆入官,官给盐本钱”。这些数据并非随意堆砌,而是经过选择的——它们共同构成了“盐法沿革”的结构性事实。

值得注意的是,马端临并未对这些数据做出“善”或“恶”的评判,他只是呈现它们,让数据本身构成对比。例如“四十万缗”与“六百余万缗”的对比,暗示了刘晏理财的成效,但马端临并未用“善”“精”等价值词汇来收束。按语末尾的折衷之论——“善治者,取之而不扰,足国而不病民;不善治者,取之无艺,适以厉民而国亦受其敝”——是一个典型的“事实—规范”陈述:它描述的是“善治”与“不善治”的两种可能后果,而非对某一具体制度的“定罪”。“盐法之善否,视其取之之制何如耳。取之有制,则上下俱利;取之无制,则上下俱敝”——这更像是从历史经验中归纳出的制度运行“规律”,而非对某个历史人物或制度的道德宣判。

这种编排方式与“先公曰”按语中“祖宗之世→今之”的二元时间结构截然不同。“先公曰”的时间结构服务于“退化论”的价值判断,“端临按”的时间结构则服务于沿革脉络的事实呈现。这一差异将在下节的对比表中进一步呈现。

(盐法按语原文较长,此处仅引关键句,全文见中华书局本卷十九《征榷考六》。)

(三)两种话语的对比与区分标准

马将“端临按”与“先公曰”对比,可以看到两种话语的差异。此处需要特别澄清一个可能的误解:“端临按”中并非没有价值判断——“善治”“不善治”“足国”“病民”显然都是价值词汇。因此,区分“定罪”与“纪数”的标准,不应是“有无价值判断”,而应是价值判断的修辞强度与文本位置。具体而言:

“先公曰”的价值判断:出现在按语的收束处,以判断词(“非”“罪”“欺”)作结,具有终审性与不容置疑性;

“端临按”的价值判断:分散在事实陈述之中,以条件句(“善治者……不善治者……”)或规律性陈述出现,具有可检验性与开放性。

这一区分标准更为精确,也更能抵御“端临按中也有价值判断”的反驳。据此,可以将对比表格修正如下:

四、从“原心定罪”到“理学判词”

三则“先公曰”按语的修辞逻辑,与中国法律史上“原心定罪”的传统有着深层的同构关系。

“原心定罪”是汉代《春秋》决狱的核心原则。董仲舒《春秋繁露·精华》云:“《春秋》之听狱也,必本其事而原其志。志邪者不待成,首恶者罪特重,本直者其论轻。”其要义在于:判定罪责时,不仅要看行为的客观后果,更要追究行为人的主观动机。当然,“原心”并非无视事实——董仲舒强调“必本其事”,即仍然要以客观事实为前提。

马廷鸾将这一司法逻辑平移至史学领域。他所“定”的“罪”,并非个人的法律罪行,而是制度层面对“天理民极”的背离。他所“原”的“心”,不是某个官员的具体动机,而是贯穿于制度运行中的“执政者心术”。这种判断方式与“原心定罪”的司法传统一脉相承:行为的后果(仓廪空虚)固然是事实,但真正决定制度性质的,是行为背后的“心”。当然,二者并非严格意义上的“移植”,而是一种同构与呼应:司法领域的“原心”针对个体罪责,史学领域的“心性归因”针对制度病理。

在语气和句式上,马廷鸾的“定罪”也与司法判词有相似之处。“名存实亡,欺天害民”——这八个字的修辞结构,近似于汉代判词中“原其本意无贼心,宜减死”的句式:先陈述事实(“名存实亡”),再做价值宣判(“欺天害民”),判断词“宜”“当”“非”的省略,使判词呈现出一种不容置疑的权威感。马廷鸾作为曾任参知政事的前朝宰辅,其话语本身就携带着制度性的权威;当这种权威以“判词”的形式出现在史书中时,它便获得了一种超越个人意见的“终审”性质。

这一“原心定罪”的史学化,与《春秋》褒贬传统有着微妙而重要的差异。《春秋》的褒贬依托于“书法”——通过“书”与“不书”、“称爵”与“称名”等笔法差异来暗寓褒贬,其价值判断是隐性的。而马廷鸾的“定罪”则是显性的——他不再依赖微言大义,而是直接以判词式的语言做出价值宣判。这一转变的前提,是理学已经为“天理”确立了超越性的价值标准,史家可以直接诉诸这一标准做出评判,而无需再借“书法”来暗示。从“春秋笔法”到“理学判词”,“先公曰”展示了中国史学价值判断方式的一种变化。

这一变化在与朱熹《通鉴纲目》的比较中可以得到更清晰的界定。朱熹《纲目》的褒贬以“书法”为主导机制——通过“书”与“不书”、“称爵”与“称名”、“正统”与“闰位”等笔法差异来暗寓褒贬。其价值判断总体上是体系化、体例化的,读者须把握《纲目》的书法规则,方能系统理解其对历史人物与事件的评判。而马廷鸾的“定罪”则是显性的、个案的、依托于判词的——他不再依赖微言大义,而是直接以“非和也”“心之罪也”“欺天害民”等判词式语言做出价值宣判,读者无须掌握任何体例规则即可理解其批判指向。

这一差异的深层原因在于:朱熹作为《纲目》的编纂者,需要通过“书法”来建立一套贯穿全书的、系统化的褒贬体系,以“正统”论为核心构建其理学历史观;而马廷鸾作为《文献通考》中“献”层的一种声音,其“定罪”针对的是具体的制度病理,无须承担建立系统性褒贬体系的任务。换言之,《纲目》是“理学家的正统论著作”,其褒贬是体系化的;《通考》是“理学家的制度诊断书”,其“定罪”是个案化的。如果说朱熹的“书法褒贬”是“春秋笔法”在理学时代的系统化继承,那么马廷鸾的“判词式定罪”则是“原心定罪”在理学时代的制度批判化运用。二者共同构成了理学史学价值判断的两种范式,而《文献通考》因“定罪”与“纪数”的功能分化,得以在同一部史书中同时容纳这两种范式——这是马端临编纂策略的独特之处。

五、文本功能分化:假设与限度

以上分析聚焦于《文献通考》中的三则“先公曰”按语与一则“端临按”的对比。通过这一对比,可以看到一个现象:在这部三百四十八卷的巨著中,马端临本人在正文中极少做出如此峻烈的价值宣判。他的叙述风格高度克制,句式平实,措辞中性。而所有的价值宣判几乎全部集中在“先公曰”按语之中。

这提示了一种可能的分析框架:马氏父子之间或许存在一种“定罪”与“纪数”的文本功能分化。父亲的声音负责价值判断——“制度好不好”;儿子的编排负责事实呈现——“制度实际上如何运行”。《文献通考》的“文”“献”“注”三层结构恰好对应着三个功能层面:正文(“文”)以数据、门类、时间编排呈现制度沿革的结构性事实,此即“纪数”;引述前人议论(“献”)承载价值评判,而以“先公曰”为其中最权威的一层;“注”则是马端临本人的折衷之论,居于事实与价值之间。

这一框架若成立,其意义或可与郑樵、朱熹做一比较。郑樵力倡“会通”却回避价值评判,马氏父子的功能分化恰可视为对这一缺陷的补充;朱熹《纲目》以“正统”“闰位”做标签式评定,马廷鸾的“定罪”则深入制度运行细节,是一种制度病理学式的历史评判。如果说《纲目》是“理学家的正统论著作”,那么《通考》就是“理学家的制度诊断书”。更进一步说,“定罪/纪数”的功能分化触及了中国史学中“事实与价值”的关系问题——它不再要求同一个史家在同一个文本层面上同时完成事实呈现与价值评判,而是将二者分配到不同的作者身份和文本层面中去,使事实陈述获得“客观性”的保障,价值判断获得“权威性”的背书。

但有几点需要说明。

其一,本文提出这一框架,并非宣称已经“证明”了父子之间存在着明确的编纂分工约定。在现有史料条件下,这种证明几乎是不可能的。本文所论之“分化”,严格而言,是马端临在编纂层面对父亲话语功能的定位与分配,是子对父之话语的“职能化重组”,而不必等同于马廷鸾在世时的自我角色认知。需要进一步区分的是,“职能化重组”可能以两种方式实现:

筛选性重组:马端临从父亲的大量言论中,选择那些具有“定罪”性质的按语收入《通考》,而舍弃了那些纯事实性、纯考证性的按语。这种重组体现在“收录与否”的层面。在现有史料条件下,筛选性重组是更容易证成的——只需统计“先公曰”按语在全书中是否集中于价值判断类目,即可获得初步证据。

编辑性重组:马端临对父亲按语的原文进行了删节、改写或重新安置,使其呈现出“判词式收束”的特征。这种重组体现在“文本形态”的层面。编辑性重组需要比对马廷鸾文集与《通考》所引的异同,才能获得确证;在现有史料条件下,这一层面的论证尚难充分展开。

需要坦率说明的是:本文尚未对马廷鸾文集中未被《通考》收录的言论进行系统比对,因此“筛选性重组”本身也仍是一个有待检验的假设。本文所能论证的仅是:在《通考》已收录的“先公曰”中,“定罪”话语呈现出集中的功能特征。换言之,本文的假设主要依赖的是筛选性重组的证据,而非编辑性重组。至于马廷鸾文集中那些未被收录的言论是否同样具有“定罪”特征,以及马端临是否对父亲的原文进行了改写,则是有待进一步考证的问题。

其二,“定罪/纪数”框架的学术价值不在于它提供了一个“历史结论”,而在于它提供了一种“阅读假设”:用这对概念来重读《文献通考》,是否能够发现一些仅凭传统研究路径所未能发现的意义层面?

其三,这一框架的检验路径清晰可循。如果它成立,那么我们应该在全书中发现:“先公曰”按语出现的位置总是与重大价值判断相关联,且其价值判断以收束处、判断词、终审性为特征;而马端临本人的按语则倾向于将价值判断分散于事实陈述之中,以条件句、规律句、可检验性为特征。反之,若“先公曰”大量出现在纯事实性叙述中,或马端临的按语同样频繁地以判词式语言做出峻烈的价值宣判,则此框架的解释力就需要被重新评估。需要再次强调:马端临“注”中并非没有价值判断,因此不能把“端临按”简单等同于“价值中立”。更准确的假设是:马端临注中的价值判断多服务于事实折衷,而“先公曰”中的价值判断则常以终审判词的形式出现。

其四,本文的分析样本仅有四则(三则“先公曰”加一则“端临按”),不足以支撑一个关于全书整体结构的分析框架。本文的目的不在“支撑”,而在“展示”——展示这一框架如何产生新的阅读效果,从而为更大规模的系统检验提供可能性。

结 论

《文献通考》中的“先公曰”按语,不宜简单视为马端临个人史识的重复表达。它们在全书中承担着一种特殊的文本功能:以理学“天理”为标准,对制度运行做出终极价值宣判。这种“定罪”话语具有历史主义的时间结构、名实之辨的判断方法、心性归因的最终指向和判词式的收束方式。与之相对,马端临的“文”“注”层则更多承担事实编排、制度沿革呈现与折衷考证的功能,可称之为“纪数”。二者之间是否存在明确的父子分工约定虽难确证,但作为一种文本内部的阅读假设,“定罪/纪数”的功能分化能够帮助我们重新审视《文献通考》的编纂结构,理解其“文”“献”“注”三层背后的价值与事实关系。

这一功能分化的深层意义,或许在于它为中国古代史学中“实录”与“褒贬”的长期张力提供了一种独特的解决方案。自司马迁以降,“究天人之际,通古今之变”的实录精神与“别嫌疑,明是非”的褒贬传统始终并存于史学实践之中,但如何在同一部史书中同时容纳二者,却始终是一个难题。马端临的编纂策略是:将事实呈现的功能集中于“文”“注”层,通过门类编排与数据考证保障其客观性;将价值评判的功能分配给“献”层,并以“先公曰”作为其最高权威的载体。事实陈述因与价值宣判分离而获得“客观性”保障,价值判断因与事实编排分离而获得“权威性”背书。

这一框架的最终有效性,仍有待于对全部按语的系统统计与互文检验。本文的贡献在于提出了一种可检验的阅读假设,并展示了这一假设如何能够打开《文献通考》研究中一些此前未被充分注意的意义层面。

注释

①马端临:《文献通考·自序》,北京:中华书局,2011年。

② 张舜徽:《史学三书平议》,北京:中华书局,1983年。

③ 王森:《马端临〈文献通考〉按语研究》,北京师范大学博士学位论文,2015年;周祥森:《〈文献通考〉编纂学研究》,开封:河南大学出版社,2008年。

④ 班固:《汉书》卷二十三《刑法志》,北京:中华书局,1962年。

⑤ 班固:《汉书》卷二十一上《律历志上》,北京:中华书局,1962年。

⑥ 马端临:《文献通考》卷二十三《市籴考二》,北京:中华书局,2011年。

⑦ 徐松辑:《宋会要辑稿·食货六二》,北京:中华书局,1957年。

⑧ 马端临:《文献通考》卷十四《职役考一》,北京:中华书局,2011年。

⑨ 马廷鸾:《碧梧玩芳集》卷一《论治体》,《四库全书存目丛书·集部》第118册,济南:齐鲁书社,1997年。

⑩ 马端临:《文献通考》卷五《田赋考五》,北京:中华书局,2011年。

⑪ 董仲舒:《春秋繁露·精华》,北京:中华书局,1975年。

⑫ 马端临:《文献通考》卷十九《征榷考六》,北京:中华书局,2011年。

⑬ 朱熹:《资治通鉴纲目》,《朱子全书》第8—11册,上海:上海古籍出版社、合肥:安徽教育出版社,2002年。

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-11-03 19:36:50 HTTP/1.1 GET : http://d.sjds.net/a/465282.html
  2. 运行时间 : 0.087290s [ 吞吐率:11.46req/s ] 内存消耗:4,386.56kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=eaa3ff11b59c8019f5d31bc4b0472ad1
  1. /www/wwwroot/d.sjds.net/public/index.php ( 0.79 KB )
  2. /www/wwwroot/d.sjds.net/vendor/autoload.php ( 0.17 KB )
  3. /www/wwwroot/d.sjds.net/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /www/wwwroot/d.sjds.net/vendor/composer/platform_check.php ( 0.90 KB )
  5. /www/wwwroot/d.sjds.net/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /www/wwwroot/d.sjds.net/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /www/wwwroot/d.sjds.net/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /www/wwwroot/d.sjds.net/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /www/wwwroot/d.sjds.net/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /www/wwwroot/d.sjds.net/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /www/wwwroot/d.sjds.net/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /www/wwwroot/d.sjds.net/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /www/wwwroot/d.sjds.net/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /www/wwwroot/d.sjds.net/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /www/wwwroot/d.sjds.net/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /www/wwwroot/d.sjds.net/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /www/wwwroot/d.sjds.net/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /www/wwwroot/d.sjds.net/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /www/wwwroot/d.sjds.net/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /www/wwwroot/d.sjds.net/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /www/wwwroot/d.sjds.net/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /www/wwwroot/d.sjds.net/app/provider.php ( 0.19 KB )
  23. /www/wwwroot/d.sjds.net/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /www/wwwroot/d.sjds.net/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /www/wwwroot/d.sjds.net/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /www/wwwroot/d.sjds.net/app/common.php ( 0.03 KB )
  27. /www/wwwroot/d.sjds.net/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /www/wwwroot/d.sjds.net/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /www/wwwroot/d.sjds.net/config/app.php ( 0.95 KB )
  30. /www/wwwroot/d.sjds.net/config/cache.php ( 0.78 KB )
  31. /www/wwwroot/d.sjds.net/config/console.php ( 0.23 KB )
  32. /www/wwwroot/d.sjds.net/config/cookie.php ( 0.56 KB )
  33. /www/wwwroot/d.sjds.net/config/database.php ( 2.48 KB )
  34. /www/wwwroot/d.sjds.net/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /www/wwwroot/d.sjds.net/config/filesystem.php ( 0.61 KB )
  36. /www/wwwroot/d.sjds.net/config/lang.php ( 0.91 KB )
  37. /www/wwwroot/d.sjds.net/config/log.php ( 1.35 KB )
  38. /www/wwwroot/d.sjds.net/config/middleware.php ( 0.19 KB )
  39. /www/wwwroot/d.sjds.net/config/route.php ( 1.89 KB )
  40. /www/wwwroot/d.sjds.net/config/session.php ( 0.57 KB )
  41. /www/wwwroot/d.sjds.net/config/trace.php ( 0.34 KB )
  42. /www/wwwroot/d.sjds.net/config/view.php ( 0.82 KB )
  43. /www/wwwroot/d.sjds.net/app/event.php ( 0.25 KB )
  44. /www/wwwroot/d.sjds.net/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /www/wwwroot/d.sjds.net/app/service.php ( 0.13 KB )
  46. /www/wwwroot/d.sjds.net/app/AppService.php ( 0.26 KB )
  47. /www/wwwroot/d.sjds.net/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /www/wwwroot/d.sjds.net/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /www/wwwroot/d.sjds.net/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /www/wwwroot/d.sjds.net/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /www/wwwroot/d.sjds.net/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /www/wwwroot/d.sjds.net/vendor/services.php ( 0.14 KB )
  53. /www/wwwroot/d.sjds.net/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /www/wwwroot/d.sjds.net/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /www/wwwroot/d.sjds.net/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /www/wwwroot/d.sjds.net/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /www/wwwroot/d.sjds.net/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /www/wwwroot/d.sjds.net/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /www/wwwroot/d.sjds.net/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /www/wwwroot/d.sjds.net/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /www/wwwroot/d.sjds.net/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /www/wwwroot/d.sjds.net/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /www/wwwroot/d.sjds.net/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /www/wwwroot/d.sjds.net/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /www/wwwroot/d.sjds.net/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /www/wwwroot/d.sjds.net/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /www/wwwroot/d.sjds.net/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /www/wwwroot/d.sjds.net/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /www/wwwroot/d.sjds.net/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /www/wwwroot/d.sjds.net/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /www/wwwroot/d.sjds.net/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /www/wwwroot/d.sjds.net/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /www/wwwroot/d.sjds.net/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /www/wwwroot/d.sjds.net/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /www/wwwroot/d.sjds.net/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /www/wwwroot/d.sjds.net/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /www/wwwroot/d.sjds.net/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /www/wwwroot/d.sjds.net/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /www/wwwroot/d.sjds.net/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /www/wwwroot/d.sjds.net/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /www/wwwroot/d.sjds.net/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /www/wwwroot/d.sjds.net/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /www/wwwroot/d.sjds.net/app/Request.php ( 0.09 KB )
  84. /www/wwwroot/d.sjds.net/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /www/wwwroot/d.sjds.net/app/middleware.php ( 0.25 KB )
  86. /www/wwwroot/d.sjds.net/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /www/wwwroot/d.sjds.net/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /www/wwwroot/d.sjds.net/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /www/wwwroot/d.sjds.net/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /www/wwwroot/d.sjds.net/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /www/wwwroot/d.sjds.net/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /www/wwwroot/d.sjds.net/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /www/wwwroot/d.sjds.net/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /www/wwwroot/d.sjds.net/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /www/wwwroot/d.sjds.net/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /www/wwwroot/d.sjds.net/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /www/wwwroot/d.sjds.net/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /www/wwwroot/d.sjds.net/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /www/wwwroot/d.sjds.net/route/app.php ( 1.72 KB )
  100. /www/wwwroot/d.sjds.net/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /www/wwwroot/d.sjds.net/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /www/wwwroot/d.sjds.net/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /www/wwwroot/d.sjds.net/app/controller/Index.php ( 4.81 KB )
  104. /www/wwwroot/d.sjds.net/app/BaseController.php ( 2.05 KB )
  105. /www/wwwroot/d.sjds.net/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /www/wwwroot/d.sjds.net/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /www/wwwroot/d.sjds.net/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /www/wwwroot/d.sjds.net/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /www/wwwroot/d.sjds.net/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /www/wwwroot/d.sjds.net/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /www/wwwroot/d.sjds.net/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /www/wwwroot/d.sjds.net/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /www/wwwroot/d.sjds.net/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /www/wwwroot/d.sjds.net/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /www/wwwroot/d.sjds.net/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /www/wwwroot/d.sjds.net/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /www/wwwroot/d.sjds.net/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /www/wwwroot/d.sjds.net/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /www/wwwroot/d.sjds.net/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /www/wwwroot/d.sjds.net/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /www/wwwroot/d.sjds.net/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /www/wwwroot/d.sjds.net/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /www/wwwroot/d.sjds.net/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /www/wwwroot/d.sjds.net/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /www/wwwroot/d.sjds.net/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /www/wwwroot/d.sjds.net/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /www/wwwroot/d.sjds.net/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /www/wwwroot/d.sjds.net/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /www/wwwroot/d.sjds.net/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /www/wwwroot/d.sjds.net/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /www/wwwroot/d.sjds.net/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /www/wwwroot/d.sjds.net/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /www/wwwroot/d.sjds.net/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /www/wwwroot/d.sjds.net/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /www/wwwroot/d.sjds.net/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /www/wwwroot/d.sjds.net/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /www/wwwroot/d.sjds.net/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /www/wwwroot/d.sjds.net/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /www/wwwroot/d.sjds.net/runtime/temp/a298b44dbd617feaf616ad402d0d9144.php ( 8.05 KB )
  140. /www/wwwroot/d.sjds.net/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000599s ] mysql:host=172.18.0.4;port=3306;dbname=d_sjds;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001059s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000430s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000396s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000758s ]
  6. SELECT * FROM `set` [ RunTime:0.000359s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000815s ]
  8. SELECT * FROM `article` WHERE `id` = 465282 LIMIT 1 [ RunTime:0.000772s ]
  9. UPDATE `article` SET `lasttime` = 1793705810 WHERE `id` = 465282 [ RunTime:0.002444s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000436s ]
  11. SELECT * FROM `article` WHERE `id` < 465282 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000553s ]
  12. SELECT * FROM `article` WHERE `id` > 465282 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000491s ]
  13. SELECT * FROM `article` WHERE `id` < 465282 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.001341s ]
  14. SELECT * FROM `article` WHERE `id` < 465282 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.000963s ]
  15. SELECT * FROM `article` WHERE `id` < 465282 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.000502s ]
0.099219s