2013-03-06 44 views
0

我正在寻找一种方法来获取所有未受保护的页面的列表。 MediaWiki中有特殊页面用于查看所有页面的列表以及查看受保护页面的列表。有没有办法编写一个脚本,基本上只是比较两个列表并输出那些不受保护的页面?获取不受保护页面列表的脚本

注:我还要提到的是,虽然我有C++,C,Java和Python的经验,我从来没有用PHP写的前...

+0

创建所有页面和受保护页面的数组。之后,使用'array_diff'从这些数组中获取不受保护的页面数组。 – 2013-03-06 04:59:40

回答

1

最简单的方法是这样的。 (填充$所有页的列表和$ protectedPages自己)

$allPages = array('url1', 'url2', 'url3'); 
$protectedPages = array('url2'); 

// this array_diff() will give you the an array of the difference in each array 
$unprotectedPages = array_diff($allPages, $protectedPages); 
print_r($unprotectedPages); 
+1

太棒了,你用我评论的答案作为你的答案。 – 2013-03-06 05:08:03

0

如果你的wiki,为什么用特殊页面烦?你可以看看the database并做这样的事情:

SELECT page_namespace, page_title 
FROM page p JOIN page_restrictions pr ON p.page_id = pr.page_id;