<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hant-TW">
	<id>http://www.jendo.org/wiki1231/index.php?action=history&amp;feed=atom&amp;title=Mediawiki_%E7%A8%8B%E5%BC%8F%E8%AA%AA%E6%98%8E%2F%E5%8F%96%E6%AE%B5%E8%90%BD</id>
	<title>Mediawiki 程式說明/取段落 - 修訂歷史</title>
	<link rel="self" type="application/atom+xml" href="http://www.jendo.org/wiki1231/index.php?action=history&amp;feed=atom&amp;title=Mediawiki_%E7%A8%8B%E5%BC%8F%E8%AA%AA%E6%98%8E%2F%E5%8F%96%E6%AE%B5%E8%90%BD"/>
	<link rel="alternate" type="text/html" href="http://www.jendo.org/wiki1231/index.php?title=Mediawiki_%E7%A8%8B%E5%BC%8F%E8%AA%AA%E6%98%8E/%E5%8F%96%E6%AE%B5%E8%90%BD&amp;action=history"/>
	<updated>2026-04-10T04:19:27Z</updated>
	<subtitle>本 Wiki 上此頁面的修訂歷史</subtitle>
	<generator>MediaWiki 1.35.14</generator>
	<entry>
		<id>http://www.jendo.org/wiki1231/index.php?title=Mediawiki_%E7%A8%8B%E5%BC%8F%E8%AA%AA%E6%98%8E/%E5%8F%96%E6%AE%B5%E8%90%BD&amp;diff=124&amp;oldid=prev</id>
		<title>丁志仁：​新頁面: 分類:Mediawiki  Mediawiki 修改#除錯 ==由頁名/段名取段落wiki原文== 步驟： #拆解頁名中的名字空間及純頁名 #$wgContLang-&amp;gt;mNamespaceIds[&#039;名字...</title>
		<link rel="alternate" type="text/html" href="http://www.jendo.org/wiki1231/index.php?title=Mediawiki_%E7%A8%8B%E5%BC%8F%E8%AA%AA%E6%98%8E/%E5%8F%96%E6%AE%B5%E8%90%BD&amp;diff=124&amp;oldid=prev"/>
		<updated>2014-08-31T12:49:20Z</updated>

		<summary type="html">&lt;p&gt;新頁面: &lt;a href=&quot;/wiki1231/index.php?title=%E5%88%86%E9%A1%9E:Mediawiki&quot; title=&quot;分類:Mediawiki&quot;&gt;分類:Mediawiki&lt;/a&gt;  &lt;a href=&quot;/wiki1231/index.php?title=Mediawiki_%E4%BF%AE%E6%94%B9#.E9.99.A4.E9.8C.AF&quot; title=&quot;Mediawiki 修改&quot;&gt;Mediawiki 修改#除錯&lt;/a&gt; ==由頁名/段名取段落wiki原文== 步驟： #拆解頁名中的名字空間及純頁名 #$wgContLang-&amp;gt;mNamespaceIds[&amp;#039;名字...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新頁面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[分類:Mediawiki]]&lt;br /&gt;
&lt;br /&gt;
[[Mediawiki 修改#除錯]]&lt;br /&gt;
==由頁名/段名取段落wiki原文==&lt;br /&gt;
步驟：&lt;br /&gt;
#拆解頁名中的名字空間及純頁名&lt;br /&gt;
#$wgContLang-&amp;amp;gt;mNamespaceIds[&amp;#039;名字空間&amp;#039;]為該名字空間之id&lt;br /&gt;
#Title類別建構子為空方法，但Title::makeTitle(名字空間id,純頁名)可以得回Title物件&lt;br /&gt;
#new Article(Title物件)可以得回Article物件 $Article&lt;br /&gt;
#$Article-&amp;amp;gt;getContent()可以取回wiki原文&lt;br /&gt;
#產生陣列 $Article-&amp;amp;gt;mParserOutput-&amp;amp;gt;mSections ，稱之為$sections&lt;br /&gt;
#$sections為註標索引陣列，每一元素為一段，元素值為段落描述陣列&lt;br /&gt;
#查出某段名的段序號，即可代入 $wgParser-&amp;amp;gt;getSection($Article-&amp;amp;gt;getContent(),段序號)) 求該段的 wiki 原文&lt;br /&gt;
===段落描述陣列===&lt;br /&gt;
以「公共教育重設定」的第二段為例：&lt;br /&gt;
 [toclevel] =&amp;amp;gt; 2，上一層level&lt;br /&gt;
 [level] =&amp;amp;gt; 3，本段為第幾層&lt;br /&gt;
 [line] =&amp;amp;gt; 時代的限制，段名&lt;br /&gt;
 [number] =&amp;amp;gt; 1.1，幾之幾&lt;br /&gt;
 [index] =&amp;amp;gt; 2，第幾段&lt;br /&gt;
 [fromtitle] =&amp;amp;gt; 公共教育重設定，隸屬的頁名&lt;br /&gt;
 [byteoffset] =&amp;amp;gt; 511，byte數&lt;br /&gt;
 [anchor] =&amp;amp;gt; .E6.99.82.E4.BB.A3.E7.9A.84.E9.99.90.E5.88.B6，錨點&lt;br /&gt;
#line為段名&lt;br /&gt;
#index為段序號&lt;br /&gt;
&lt;br /&gt;
==從步驟3開始的程式說明==&lt;br /&gt;
以「公共教育重設定」的第二段為例： &lt;br /&gt;
*步驟3,4，由頁名取文章&lt;br /&gt;
 $Article=new Article(Title::makeTitle(0,&amp;#039;公共教育重設定&amp;#039;));&lt;br /&gt;
*步驟6，產生文章的段落描述，以下三行在Article類別，view()方法中&lt;br /&gt;
 $parserOptions = $Article-&amp;amp;gt;getParserOptions();&lt;br /&gt;
 $parserCache = ParserCache::singleton();&lt;br /&gt;
 $Article-&amp;amp;gt;mParserOutput = $parserCache-&amp;amp;gt;get( $Article, $parserOptions );&lt;br /&gt;
不能用view()方法，不然會產生畫面中額外的bodytext輸出&lt;br /&gt;
*步驟7，由段名找段序號&lt;br /&gt;
 $sectionLine=&amp;#039;時代的限制&amp;#039;;&lt;br /&gt;
 $sectionIndex=0;&lt;br /&gt;
 foreach($Article-&amp;amp;gt;mParserOutput-&amp;amp;gt;mSections as $v){&lt;br /&gt;
 	if($v[&amp;#039;line&amp;#039;]==$sectionLine){$sectionIndex=$v[&amp;#039;index&amp;#039;];break;}&lt;br /&gt;
 }&lt;br /&gt;
*步驟8，傳回段落wiki原文&lt;br /&gt;
 $wgParser-&amp;amp;gt;getSection($Article-&amp;amp;gt;getContent(),2);&lt;br /&gt;
===相關方法屬性描述===&lt;br /&gt;
*取回Title物件：Title::makeTitle(名字空間編碼,純名)&lt;br /&gt;
*取回Article物件：new Article(Title物件)&lt;br /&gt;
*取頁的wiki全文：Article物件getContent()方法&lt;br /&gt;
*產生文章的段落描述：Article物件view()方法&lt;br /&gt;
*各段描述陣列：Article物件-&amp;amp;gt;mParserOutput-&amp;amp;gt;mSections&lt;br /&gt;
*取段的wiki原文：$wgParser-&amp;amp;gt;getSection(全文,段序號)&lt;br /&gt;
&lt;br /&gt;
==其他說明==&lt;br /&gt;
===由請求的 URL 取段序號===&lt;br /&gt;
 $section=$wgRequest-&amp;amp;gt;getVal(&amp;#039;section&amp;#039;);&lt;br /&gt;
&lt;br /&gt;
===由Article透過RawPage求wiki全文===&lt;br /&gt;
有Article其實可以直接用getContent()取回wiki原文，不必繞 RawPage 和 Revision&lt;br /&gt;
 $rawPage=new RawPage($Article);	// 起RawPage須給入某Article&lt;br /&gt;
 Revision::newFromTitle($rawPage-&amp;amp;gt;mTitle,$rawPage-&amp;amp;gt;mOldId)-&amp;amp;gt;getText();&lt;br /&gt;
#給一個Article，用 RawPage 物件即可取得其頁名(title)及版本id(oldId)&lt;br /&gt;
#用Revision類的newFromTitle方法套入版本id及頁名可以得到版本物件&lt;br /&gt;
#用版本物件的getText()方法可以得到wiki原文&lt;/div&gt;</summary>
		<author><name>丁志仁</name></author>
	</entry>
</feed>