level: $level, name: $name
"; } ``` 這段代碼會輸出markdown文檔中所有標(biāo)題的級別和名稱。以下是樣例輸出: ```level: 1, name: 標(biāo)題1
level: 2, name: 子標(biāo)題1-1
level: 3, name: 三級標(biāo)題
level: 2, name: 子標(biāo)題1-2
level: 3, name: 三級標(biāo)題
level: 1, name: 標(biāo)題2
level: 2, name: 子標(biāo)題2-1
level: 2, name: 子標(biāo)題2-2
level: 3, name: 三級標(biāo)題
level: 4, name: 四級標(biāo)題
``` 接下來,我們需要根據(jù)標(biāo)題的級別來生成目錄。目錄應(yīng)該顯示每個標(biāo)題的名稱和鏈接,而鏈接應(yīng)該指向?qū)?yīng)的標(biāo)題。由于我們正在處理一個Markdown文檔,我們只需要生成Markdown格式的目錄即可。 下面是PHP代碼示例: ``` // 將匹配的標(biāo)題寫入到一個數(shù)組中 $titles = array(); foreach ($matches as $match) { $level = strlen($match[1]); $name = $match[2]; $id = urlencode($name); $titles[] = array('level' =>$level, 'name' =>$name, 'id' =>$id); } // 輸出markdown格式的目錄 foreach ($titles as $title) { $pad = str_repeat(' ', $title['level'] - 1); echo "$pad- [$title[name]](#$title[id])
"; } ``` 在這個例子中,我們首先將所有標(biāo)題寫入一個數(shù)組中,然后使用循環(huán)生成包含標(biāo)題名稱和鏈接的Markdown目錄。URL編碼在這里用于將標(biāo)題名稱轉(zhuǎn)換為在Markdown中正確的錨點ID。 以下是樣例輸出: ```- [標(biāo)題1](#%E6%A0%87%E9%A2%981)
- [子標(biāo)題1-1](#%E5%AD%90%E6%A0%87%E9%A2%981-1)
- [三級標(biāo)題](#%E4%B8%89%E7%BA%A7%E6%A0%87%E9%A2%98)
- [子標(biāo)題1-2](#%E5%AD%90%E6%A0%87%E9%A2%981-2)
- [三級標(biāo)題](#%E4%B8%89%E7%BA%A7%E6%A0%87%E9%A2%98)
- [標(biāo)題2](#%E6%A0%87%E9%A2%982)
- [子標(biāo)題2-1](#%E5%AD%90%E6%A0%87%E9%A2%982-1)
- [子標(biāo)題2-2](#%E5%AD%90%E6%A0%87%E9%A2%982-2)
- [三級標(biāo)題](#%E4%B8%89%E7%BA%A7%E6%A0%87%E9%A2%98)
- [四級標(biāo)題](#%E5%9B%9B%E7%BA%A7%E6%A0%87%E9%A2%98)
``` 在這篇文章中,我們使用PHP演示了如何生成Markdown文檔中的目錄。按照這些步驟,您可以很容易地為任何Markdown文檔生成目錄并提供更好的文檔結(jié)構(gòu)。