diff options
Diffstat (limited to 'maintenance/checkBadRedirects.php')
-rw-r--r-- | maintenance/checkBadRedirects.php | 30 |
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"; |