summaryrefslogtreecommitdiff
path: root/maintenance/checkBadRedirects.php
diff options
context:
space:
mode:
Diffstat (limited to 'maintenance/checkBadRedirects.php')
-rw-r--r--maintenance/checkBadRedirects.php30
1 files changed, 30 insertions, 0 deletions
diff --git a/maintenance/checkBadRedirects.php b/maintenance/checkBadRedirects.php
new file mode 100644
index 00000000..48a4b0e6
--- /dev/null
+++ b/maintenance/checkBadRedirects.php
@@ -0,0 +1,30 @@
+<?php
+
+require "commandLine.inc";
+
+echo "Fetching redirects...\n";
+$dbr = wfGetDB( DB_SLAVE );
+$result = $dbr->select(
+ array( 'page' ),
+ array( 'page_namespace','page_title', 'page_latest' ),
+ array( 'page_is_redirect' => 1 ) );
+
+$count = $result->numRows();
+echo "Found $count total redirects.\n";
+echo "Looking for bad redirects:\n";
+echo "\n";
+
+foreach( $result as $row ) {
+ $title = Title::makeTitle( $row->page_namespace, $row->page_title );
+ $rev = Revision::newFromId( $row->page_latest );
+ if( $rev ) {
+ $target = Title::newFromRedirect( $rev->getText() );
+ if( !$target ) {
+ echo $title->getPrefixedText();
+ echo "\n";
+ }
+ }
+}
+
+echo "\n";
+echo "done.\n";