我正在寻找一种方法来获取我的 wiki 上不受保护的所有页面的列表。MediaWiki 中有专门的页面用于查看所有页面的列表和查看受保护页面的列表。有没有办法编写一个基本上只是比较两个列表并输出那些不受保护的页面的脚本?
注意:我还应该提到,虽然我有 C++、C、Java 和 Python 经验,但我以前从未用 PHP 编写过......
最简单的方法是这样的。(自行填充 $allPages 和 $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);
如果它是您的 wiki,为什么还要打扰特殊页面?您可以只查看数据库并执行以下操作:
SELECT page_namespace, page_title
FROM page p JOIN page_restrictions pr ON p.page_id = pr.page_id;