当前位置:首页>戏曲>李昌集 | 元杂剧“戏曲文学”生成的前因后果——元杂剧文学研究三题(上)

李昌集 | 元杂剧“戏曲文学”生成的前因后果——元杂剧文学研究三题(上)

  • 2026-05-11 00:46:15
李昌集 | 元杂剧“戏曲文学”生成的前因后果——元杂剧文学研究三题(上)

元杂剧“戏曲文学”生成的前因后果

——元杂剧文学研究三题(上)

李昌集

【内容提要】中国古代语境中的“戏”“剧”,指所有场上表演形式。其中具有角色扮演意味、有情节性片段的“戏”“剧”,首先当注意先秦宫廷“优戏”,优戏的角色扮演与“谐”“讽”批判精神,成为中国古代“戏剧文化”的底层逻辑,贯穿在戏剧—戏曲的历史运行之中。中国古代完型戏剧的生成,启动于将长篇小说故事移植为角色表演的戏剧,最初在宋代皮影、傀儡戏中展开,促进了艺人戏曲的生成。今知古代最早的戏曲,是南宋市井勾栏角色扮演的、以“话文”为故事底本的南戏;其后元代以市民文人为主体的北曲剧本写作,创构了“俗文学—市民文学”为主导、化入传统“文人文学”元素、将传奇故事与普遍情感融为一体的“戏曲文学”,使元杂剧成为中国古代戏曲史上的第一个里程碑。

【关键词】元杂剧 戏曲文学 戏剧文化 小说传统 市民文学

今学界将中国古代戏剧史分为两大历史阶段:上古至唐宋(北宋)为“早期戏剧”时代,包括“原始”的和“初级”的戏剧,或有片段的故事性情节表演,但尚无完整的故事和文字剧本,统称之“古剧”;南宋元明清为完型戏剧——“戏曲”的时代,包括全域性和各地方的“戏曲”,以各种角色的唱念做打扮演“一定长度的故事”,有某种文字剧本,是舞台艺术与“戏曲文学”互相依托的“文艺”。

长期以来,学界的“古剧—戏曲”研究是这样展开的:“古剧”研究围绕古代泛称“戏”“剧”的各种表演形式展开,重要目的在于为后世“戏曲”的演出形式寻找历史的来路;戏曲研究则有演艺和文学两个维度,具体研究往往分域论说,近期以来开始出现关联性研究。但“戏曲文学”的研究一直无涉“古剧”,因为无剧本的“古剧”无“文学”,所以戏曲“文学”似乎与“古剧”挂不上钩。

对此,直观看来合情合理,但如果拓展一下学术思路,将“古剧”和“戏曲”置于中国古代前后贯穿的“戏剧文化”大传统中思考,就会提出这样的问题:“戏曲”和“古剧”在传统“戏剧文化”中是怎样连接的?古今学界有关“古剧—戏曲”场上形式的历史关联研究,取得了丰硕成果,但极少涉及“戏曲文学”的内在精神与“戏剧文化传统”的关联,今日探究之,势必要问:中国古代“戏剧文化”的底层逻辑是什么?在“戏曲”中是怎样体现和具体展开的?戏曲剧本作为“戏曲文学”——中国宋元时代的一种新生文学类型,其与“传统文学”是否有关联?如果有,戏曲文学的“个性”和“时代性”是什么?

这些问题,是元杂剧研究的学术前提,解答之需要学界同仁群策群力,本文仅提出几点初步思考,供学界朋友们讨论和批评。

中国早期戏剧的扮演方式与“戏剧文化”的底层逻辑

宋元前“古剧”时代的“戏”“剧”,在当时历史语境中泛指各种场上表演,亦指生活中各种娱乐玩笑行为,《诗经·淇奥》:“善戏谑兮,不为虐兮”;唐杜牧《西江怀古》:“魏帝缝囊真戏剧,苻坚投棰更荒唐。”今中外学者或将中国上古初民的一些集体仪式作为“戏剧”的起源,但所指上古祭祀活动的“仪式戏剧”,并非有意识扮演的“戏剧”;至于秦汉各种场上娱乐表演的“散乐百戏”,若角抵、参军、傩戏、杂技、魔术、斗兽、小歌舞等,东汉张衡《西京赋》中有大段描述,但与今天所指的“戏剧”——代言装扮的故事性情节表演,不能笼统混为一谈。

中国早期语境中的各种“戏剧”,与今指“戏剧”表演的基本形式有所类似的“戏”,从现存文献资料看,是先秦的宫廷“优戏”。宫廷之“优”是中国最早有文化的职业演员,活跃于王室贵族圈的“优戏”可谓上古“戏剧文化”的最高层次,可惜今存文献中相关资料甚少,众所周知的是《史记》所记春秋楚国的“优孟衣冠”故事:

优孟者,故楚之乐人也。长八尺,多辩,常以谈笑讽谏。……楚相孙叔敖知其贤人也,善待之。病且死,属其子曰:“我死,汝必贫困。若往见优孟,言我孙叔敖之子也。”居数年,其子穷困负薪,逢优孟,与言曰:“我,孙叔敖子也。父且死时,属我贫困往见优孟。”优孟曰:“若无远有所之。”即为孙叔敖衣冠,抵掌谈语。岁余,像孙叔敖,楚王及左右不能别也。庄王置酒,优孟前为寿。庄王大惊,以为孙叔敖复生也,欲以为相。优孟曰:“请归与妇计之,三日而为相。”庄王许之。三日后,优孟复来。王曰:“妇言谓何?”孟曰:“妇言慎无为,楚相不足为也。如孙叔敖之为楚相,尽忠为廉以治楚,楚王得以霸。今死,其子无立锥之地,贫困负薪以自饮食。必如孙叔敖,不如自杀。”因歌曰:“山居耕田苦,难以得食。起而为吏,身贪鄙者余财,不顾耻辱。身死家室富,又恐受赇枉法,为奸触大罪,身死而家灭。贪吏安可为也!念为廉吏,奉法守职,竟死不敢为非。廉吏安可为也!楚相孙叔敖持廉至死,方今妻子穷困,负薪而食,不足为也!”于是庄王谢优孟,乃召孙叔敖子,封之寝丘四百户。

此“优戏”,并非舞台表演,而是现实生活中的一场“戏”。从准备到“演出”历时一年多:先是优孟练习装扮孙叔敖——“为孙叔敖衣冠,抵掌谈语。岁余,像孙叔敖”,以至“楚王及左右不能别也”。继之为两幕精彩“优戏”,第一幕:“庄王置酒,优孟前为寿。庄王大惊,以为孙叔敖复生也,欲以为相。”“孙叔敖”说要回家和妻子商量一下。第二幕:三天以后,“孙叔敖”来对楚庄王说:老婆不答应,因为做楚相没意思,且看那孙叔敖,多么廉洁,为楚国立了大功,死了以后老婆儿子却穷得一塌糊涂。说完唱了长长的一首歌,大意是:发财的贪官和奉公守法的清官,最终都没有好结果啊!最后的“戏剧”结局是:“庄王谢优孟,乃召孙叔敖子,封之寝丘四百户。”

请注意两幕“戏”中优孟角色的转换:第一幕是“代言”装扮的“孙叔敖”,第二幕一开场仍然是“孙叔敖”,接着就以真实的优孟身份说话唱歌了。稍微推敲一下,整个“戏剧”的“关目”和“人物”颇有不合情理处:优孟扮演孙叔敖,举止神态再怎么像,相貌能够一样?与孙叔敖相处多年的楚庄王会把优孟的扮演当成真的孙叔敖?显然,楚庄王和大臣不会真的相信“孙叔敖”死而复生,合理的解释是:宫中优人装扮他者本是经常行为,庄王和大臣们一开始就知道优孟在“做戏”,想弄清楚优孟如此“做戏”目的何在,所以也随着优孟一起“入戏”,一旦明白优孟“做戏”的意图,便结束了“戏剧”,并给予优孟所希望的最佳结果。

或曰:“优孟衣冠”只不过是场“游戏”,《史记》只是记述了一个传说故事,虽有深意,但并非舞台表演,岂能将之作为“戏剧”?答曰:今指“戏剧”的构成要件有三:演员、故事、观众,“优孟衣冠”可谓三者皆备:演员优孟,故事是“孙叔敖—优孟”进谏楚庄王,观众是楚庄王和大臣,所以“优孟衣冠”是“戏剧”——一场现实生活中有意识“出演”的戏剧。尤有意味的是庄王和大臣,既是观众,同时也是“入戏”的演员,整个“戏”颇有今所谓“后现代戏剧”的意趣——打破“演”和“看”的空间隔离,突破“真”和“假”的界限,在既有预设目的,又无既定的“故事”走向中,演员和观众一起“入戏”。

当然,这只是今天的解析。回到历史,“优孟衣冠”是将舞台移向现实生活的“优戏”,可谓中国早期“戏剧文化”别具一格的特有运行方式。虽然记此“优戏”的司马迁不是先秦“戏剧文化”的亲历者,但相信有其文献的或传说中的历史依据。窃以为司马迁之所以相信和记述此故事的原因,在于汉代现实中也有类似情形的“优戏”。

以往“戏剧史”研究不将“优孟衣冠”作为“正式”的戏剧,可以理解,今天再看《优孟衣冠》的“戏剧”方式和精神意涵,对认知理解中国传统的“戏剧文化”颇有意义:

其一,春秋时代,宫廷优人就具有了扮演他者的行为和技能。在传世文献中,类似“优孟衣冠”的故事罕见,但类似的“优戏”应是宫廷优人的常事,只是因为优人的身份低微,所以上层文人不屑记之。《史记》后的“正史”即取消了优人传记,直到一千多年后的《新五代史·伶官传》,才出现了又一个现实生活中的“优戏”,“演员”是五代后唐庄宗,观众是刘皇后和一群宫人,“戏剧”情节是庄宗装扮刘皇后的父亲,带着刘皇后的弟弟来看望刘皇后。

庄宗既好俳优,又知音,能度曲,……又别为优名以自目,曰“李天下”。自其为王,至于为天子,常身与俳优杂戏于庭。……皇后刘氏素微,其父刘叟,卖药善卜,号刘山人。刘氏性悍,方与诸姬争宠,常自耻其世家而特讳其事。庄宗乃为刘叟衣服,自负蓍囊药笈,使其子继岌提破帽而随之,造其卧内,曰:“刘山人来省女。”刘氏大怒,笞继岌而逐之。宫中以为笑乐。

或曰:这里记述的五代后唐庄宗的“优戏”,只是一个偶然特例。不错,“庄宗负囊”及千年前的“优孟衣冠”,说来都是“偶然”,但将这相隔一千五百年的两个“偶然”联系在一起,恰透露了“文献背后”的历史事实:宫中扮演他者的代言体“优戏”千余年来一直未断。虽然罕见文献记载,但中国早期“戏剧”与今指“戏剧”基本构成要素相同的“戏”,开启于宫廷“优戏”,并一直在延续。因此,中国古代“早期戏剧”研究,一个重要的聚焦点是“优戏”。从今存古代文献中的点滴资料看,民间也有“角色扮演”意味的“戏剧”,如“古剧”研究中经常提起的西汉三辅地区的“俗戏”《东海黄公》、唐代民间戏弄《踏谣娘》等,其与宫廷“优戏”的关系,由于资料缺乏而难知端详,从古代雅、俗文化交流的一贯传统看,当有互动。总之,从先秦开始,“百戏”中有着某种装扮意味、具有简单情节性表演的雏形“戏剧”,历代相沿,但进展缓慢,直到宋金杂剧院本之“初级戏剧”,历时将近两千年,构成中国“前戏曲时代”的“早期戏剧文化”。

其二,司马迁为优人立传和记述“优戏”,核心要义是“优谏”。《史记·滑稽列传》称道宫廷优人机智谐谑的“谈笑讽谏”,在幽默诙谐的轻松谈笑中,使帝王知其过错,“优孟衣冠”的要义,不仅在为孙叔敖之子讨得封地,更重要的旨意在于对清廉与贪腐官员的评价与奖惩。《新五代史》记述的“庄宗好伶”,其“戏”仅是嬉笑玩乐而颠覆了“优谏”传统,“遂至于亡”,所以欧阳修在“正史”中记之。因此,表面“谐谑”的优谏,根本实质是一种批判精神,这种精神,可谓由先秦宫廷“优戏”引领的中国早期“戏剧文化”中最深刻的意义,也是贯穿古代“戏剧—戏曲”史的深层要义。

回到本文的元杂剧话题,元杂剧的扮演形态与对现实的批判,基本“戏剧精神”可谓与“优孟衣冠”大相一致。如此言,当然不是说元杂剧直接传承“优孟衣冠”,而是指古代“戏剧文化”运行到元代,“戏曲”与“古剧”内在精神的衔接。“衔接”机制是文人的剧本写作:元文人对史家书写的“优戏”自应熟悉,当下处境更加深了元文人对“优戏”讽谏精神的体会和理解,所以在剧本写作中保留和发挥了传统戏剧文化的“谐”“讽”精神。由此而言,元文人剧本写作的“戏曲文学”就并非与“早期戏剧”毫无瓜葛,而是千余年来“戏剧文化传统”的一种文学方式。

如此解析元杂剧“戏曲文学”内在精神的历史源头,似乎跨度过长,但若进入中国古代文化大语境思考:讽谏是西周建立的一种制度化行为,先秦“优谏”对现实的关注和批判意识,与周廷采集整理的“诗三百”之“刺诗”,本质精神完全一致,此后成为中国古代历代相沿的一种集体思想方式;优戏的诙谐,是娱乐文化语境中“戏”的一种表现形态,以轻松的方式对“讽”加以调剂,同时在诙谐嘲笑中亦包含着批判;当批判意味的“谐”“讽”结合在“戏”中,遂形成中国“戏剧文化”的底层逻辑。中国文化特有的稳定性和延续性,使这一传统代代相传,当此文化传统传递到元代,“戏剧”演化为“戏曲”,剧本形态的“戏曲文学”势必以千余年来“戏剧文化传统”的“谐”“讽”为内在灵魂。

元杂剧“戏曲文学”与“传奇小说”的关联

元钟嗣成编撰的《录鬼簿》,是首部记载元曲家及剧本名目的珍贵资料,同时也反映了元人对新兴之“曲”的认知观念——

其一,将元代北曲作为一个系统,将“金章宗时人”董解元作为开山,“以其创始,故列诸首”。说明在元文人观念中,北曲本是北地民间通行普及的音乐曲调,今可见的文本是董解元作《西厢记诸宫调》所用的各种宫调的乐曲。

其二,将“曲”体明确区分为“乐府”与“传奇”两大文类,前者指散曲,后者指戏曲杂剧。“传奇”作“文类”之称,缘于唐代裴铏编撰的短篇小说集,题名曰《传奇》,意指“传写不寻常的故事”,简言之即说故事,今通称为“小说”。钟嗣成是个曲家,兼作散曲和杂剧,以“传奇”称元杂剧,反映了元文人首先是将杂剧作为“故事”之“传奇小说”看待和写作的,即元杂剧“戏曲文学”的“文统”乃与“传奇小说”一脉相联。

《录鬼簿》曰北曲创始人是董解元,很大原因在于元初王实甫北曲杂剧《西厢记》是对《西厢记诸宫调》的改编,联系更早的宋南戏《张协状元》第一出有云:“似恁唱说诸宫调,何如把此话文敷演。”说明宋元南北戏曲最初的一种生成路径,即把无角色扮演的诸宫调说唱“话文”改编为“戏曲文学”剧本,付之场上角色装扮的表演。这一判断虽然依据不够充分,但从现存资料看,宋金以“说”“唱”方式演出长篇故事的曲艺,能够落实的只有诸宫调,因此学界多将诸宫调作为“说”“唱”组合的元杂剧“戏曲体”的直接来源。但长篇话本“说唱”并非始于诸宫调,其源头为唐代“说唱”,因而“戏剧”与“说唱”的结合未必始于宋元南北戏曲的“敷演话文”,或许此前已有其例。

唐代“说唱”,今见有唐五代敦煌“变文”写本,其中最值得注意的是“说”和“唱”叙述功能不同的作品,玆录《伍子胥变文》片段以略见其貌:

子胥问船人曰:“吴国如何可投得?”船人曰:“子至吴国,入于都市,泥涂其面,披发獐狂,东西驰走,大哭三声。”子胥曰:“此法幸愿解之。”船人答曰:“泥涂其面者外浊内清;大哭三声,东西驰走者,觅其明主也;披发在市者理合如斯也。吾非圣人,经事多矣。”子胥蒙他教示,遂即拜谢鱼人。虑恐楚使相逢,不得久停,至岸即发。哽咽声嘶,由如四鸟分飞,状若三荆离别;遂别鱼人南行,眷恋之情,悲伤不已。回头遥望,忽见鱼人覆船而死。子胥愧荷鱼人,哽咽悲啼不已,遂作悲歌而叹曰:

大江水兮淼无边,云与水兮相接连。痛分痛兮难可忍,苦兮苦兮冤复冤。

自古人情有离别,生死富贵总关天。先生恨胥何勿事,遂向江中而覆船。

波浪舟兮浮没沈,唱冤枉兮痛切深。一寸愁肠似刀割,途中不禁泪沾襟。

望吴邦兮不可到,思帝乡兮怀恨深,傥值明主得迁达,施展英雄一片心。

悲歌已了,更复向前,凄怆依然。丈夫契阔,何大迍邅?忠心尽节,事君九年,夙夜匪懈,晨省无愆。今遭落薄(魄),知复何言。语已怀恨,气上冲咽,业也命也,并悉关天。登山蓦岭,渡水寻川,求却不却,求前不前,动即被饿,性命转然。平王太剧,唱叫称冤,子胥带剑,途步而前。至漭荡山间,石壁侵天万丈,入地腾竹纵横。遥望松罗,山崖斗暗,虫狼离合,百鸟关关,思忆帝乡,乃为歌曰:

我所思兮道路长,涉江水兮入吴乡。父兄冥莫知何在,零丁遣我独栖惶。

丈夫流浪随缘业,生死富贵亦何常,平王曲受魏陵语,信用谗佞煞忠良。

思故乡兮愁难止,临水登山情不已。楚帝轻盈怜细腰,宫里美女多饿死。

秦穆公之女颜如玉,二八容光若桃李,见其姿首纳为妃,岂合君王有此理。

自从逃逝镇怀忧,使我孤遗无所投,昼即途中寻鬼路,蹑影藏形恒夜游。

燕山勒颂知何日,冒染蓬尘双鬓秋,不虑东西抗天塞,唯愁渴乏渡荒州。

愿我平安达前所,行无滞碍得通流;傥若吴中遇明主,兴兵先斩魏陵头。

悲歌已了,由怀慷慨,北背楚关,南登吴会。属逢天暗,云阴叆叇。失路傍徨,山林摧滞。怪鸟成群,虫狼作队,禽号姓姓,兽名狒狒。忽示心惊,拔剑即行。……

这里的引文,约为原文的1/16,但亦可看出其“体”之大概:一些变文的“说”“唱”皆是第三人称的“旁言体”,而该变文的“说”为旁言体散文,讲述故事发生的时空场景和事件进展,属于“叙事文学”;而“唱”为表演者模拟故事中人的自言体歌诗,自述当下故事情境中的感怀和情思,属于“抒情文学”。如此叙述主体不同的“说”“唱”组合,不同于诸宫调而更接近元杂剧——诸宫调“说”“唱”皆为“旁言”,元杂剧“说”“唱”皆为扮演角色的“自言”。由此,我们便发现了古代“戏剧”与“小说”相结合的历史契机:长篇故事“说唱”的产生,为长期以来初步角色扮演的小戏剧提供了走向成熟的路径,用各种角色扮演“说唱”长篇故事里的人物,就成了有说有唱有故事的“戏剧”。

历史正是这样运作的,只不过先行一步的不是艺人戏剧,而是宋代勾栏皮影戏和傀儡(木偶)戏。关于此,宋人笔记中有不少真实描述,北宋高承《事物纪原》:“宋朝仁宗时,市人有能谈三国事者,或采其说,加缘饰作影人,始为魏、吴、蜀三分战争之像。”南宋初孟元老《东京梦华录》:“影戏丁仪,瘦吉等弄乔影戏……不以风雨寒暑,诸棚看人,日日如是。”南宋耐得翁《都城纪胜》:“凡影戏乃京师人初以素纸雕镞,后用彩色装皮为之,其话本与讲史书者颇同,大抵真假相半。”南宋末吴自牧《梦粱录》:“凡傀儡,敷演烟粉、灵怪、铁骑、公案、史书、历代君臣将相故事话本,或讲史,或作杂剧,或如崖词。”“公忠者雕以正貌,奸邪者刻以丑形,盖亦寓褒贬于其间耳。”由此可知:两宋都市勾栏皮影戏和傀儡戏,将史书、公案等长篇小说搬上皮影戏“屏幕”和傀儡戏台,人工操纵的皮影和傀儡“演员”,表演动作一如“作杂剧”,话语形式则如“讲史”和“崖词”(说唱),可见宋代皮影戏和傀儡戏已是“成熟”戏剧,极有可能是“戏曲”——“演员”有说有唱的搬演“一定长度的故事”。所以能够如此,因为皮影、傀儡的“演员”可以大量制作,“戏剧”故事中的人物数量、角色分派、故事长度、演出时间,无所拘束——操弄傀儡和皮影的人可以临场替换,轮流休息而无须中断演出,较艺人出演更方便“戏剧”与长篇故事相结合,所以先行“成熟”。

宋代新型皮影戏和傀儡戏,深得市井大众的欢迎和喜爱,这就促使戏剧艺人借鉴效仿皮影傀儡兼采诸种演艺的策略,把形式简单的科白戏和歌舞戏融为一体,将“说唱”的长篇故事搬上戏台,保持“说”与“唱”的组合——以“说”表演曲折的故事吸引观众,以“唱”倾诉心灵深情感动观众,由此形成了“角儿”扮演的完型戏剧——戏曲。与“初级戏剧”不同的是:完型戏剧之戏曲,在文人加入剧本写作后,形成了“剧本先行”机制,在元文人笔下,“小说文学”转化为“戏曲文学”,由此,新生“戏曲”与传统“小说”产生了关联。

戏剧”与“小说”联姻产生“戏曲”,是中国古代“戏剧史”发展的一个飞跃。在“戏剧”维度上,“故事”乃是根本,“戏曲文学”与“小说文学”的结合,深层意义在于对“小说”叙事结构及其内在“史家文化”的传承,“戏剧”所以能与“小说”紧密结合,根基在于中国古代“戏剧文化”的底层逻辑“讽谏”,与“小说”底层“史家文化”的反思批判精神,本质上完全相通。所以,元杂剧保持了宋代勾栏戏剧的传统,题材上仍然以“史书、历代君臣将相故事”为最大一宗;现实生活故事,则在“史家文化”影响下融进对现实的反省批判意识。

戏剧”与“小说”产生的“戏曲”剧本,最早有宋南曲戏文和元北曲杂剧两大类:南戏为南宋“书会才人”在“场上本”基础上的剧本写作;北杂剧是元代市民文人的剧本写作。从此,古代“戏剧—戏曲”的运作发生意义重大的历史变革:此前艺人优伶主导的“戏剧”转化为文人主导的“戏曲”,“一剧之本”的剧本写作成为戏曲运作的引领。这场变革的主导——元代生活在市井中的平民文人,将平民眼光与文人意识汇入剧本写作,与场上戏曲相依一体,建构了中国古代北曲系统的“戏曲文学”。

(未完待续)

本文原刊《古代文学前沿与评论》(第十二辑),社会科学文献出版社,2025,第1—26页。为方便阅读,本次推送删去全部注释,感兴趣的读者可查阅原刊,引用请以原刊为准。原创内容如需转载,须经本刊编辑部授权。】

作者简介

李昌集,1949年生,文学博士,师从任中敏先生,历任扬州师院中文系、扬州大学文学院助教、讲师、副教授、教授,中国古代文学专业硕士博士生导师;2004年至今,任徐州师范大学、江苏师范大学特聘教授,中国古代文学、戏剧与影视学学科负责人,江苏省级重点学科带头人。历任中国乐府学会、散曲学会副会长,中国词学会学术委员会副主任,中国戏曲学会常务理事,江苏古代文学学会副会长;中国书法家协会教育委员会委员,中国高等教育书法协会顾问。

END

购买链接

(点入社科文献出版社京东官方旗舰书)

(已设置超链,请点击篇名跳转阅读)

“何为好戏:中国戏曲的经典化”学术研讨会纪要

“前经典时代的书写文化”学术研讨会纪要

“石刻、图像与唐代文学”青年学术沙龙纪要

文学史自主知识体系建构暨“中国文学通史系列”再版学术研讨会纪要

“文学计算批评的未来:数字人文青年实干家论坛”纪要

扫码关注我们
站在古代文学最前沿

最新文章

随机文章

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