Created
February 14, 2022 23:09
-
-
Save luukverhoeven/0c4fcfc0950b8947995f713602c8c7d2 to your computer and use it in GitHub Desktop.
Simple way to get all Moodle versions
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <?php | |
| $htmlinput = file_get_contents('https://docs.moodle.org/dev/Releases'); | |
| $doc = new \DOMDocument(); | |
| libxml_use_internal_errors(true); | |
| $doc->loadHTML($htmlinput); | |
| $xpath = new \DOMXpath($doc); | |
| $ths = $xpath->query('//tr/th[position()=1]'); | |
| $versions = []; | |
| foreach($ths as $th){ | |
| if(!stristr($th->nodeValue , 'Moodle')){ | |
| continue; | |
| } | |
| $v = trim((substr(trim($th->nodeValue) , 7))); | |
| if(!strpos($v , '.')){ | |
| continue; | |
| } | |
| $key = explode('.' , $v); | |
| $versions[$key[0].$key[1]][$v] = $v; | |
| } | |
| $versions; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Sample
=> [ 311 => [ "3.11" => "3.11", "3.11.1" => "3.11.1", "3.11.2" => "3.11.2", "3.11.3" => "3.11.3", "3.11.4" => "3.11.4", "3.11.5" => "3.11.5", ], 310 => [ "3.10" => "3.10", "3.10.1" => "3.10.1", "3.10.2" => "3.10.2", "3.10.3" => "3.10.3", "3.10.4" => "3.10.4", "3.10.5" => "3.10.5", "3.10.6" => "3.10.6", "3.10.7" => "3.10.7", "3.10.8" => "3.10.8", "3.10.9" => "3.10.9", ], 39 => [ "3.9" => "3.9", "3.9.1" => "3.9.1", "3.9.2" => "3.9.2", "3.9.3" => "3.9.3", "3.9.4" => "3.9.4", "3.9.5" => "3.9.5", "3.9.6" => "3.9.6", "3.9.7" => "3.9.7", "3.9.8" => "3.9.8", "3.9.9" => "3.9.9", "3.9.10" => "3.9.10", "3.9.11" => "3.9.11", "3.9.12" => "3.9.12", ], 38 => [ "3.8" => "3.8", "3.8.1" => "3.8.1", "3.8.2" => "3.8.2", "3.8.3" => "3.8.3", "3.8.4" => "3.8.4", "3.8.5" => "3.8.5", "3.8.6" => "3.8.6", "3.8.7" => "3.8.7", "3.8.8" => "3.8.8", "3.8.9" => "3.8.9", ], 37 => [ "3.7" => "3.7", "3.7.1" => "3.7.1", "3.7.2" => "3.7.2", "3.7.3" => "3.7.3", "3.7.4" => "3.7.4", "3.7.5" => "3.7.5", "3.7.6" => "3.7.6", "3.7.7" => "3.7.7", "3.7.8" => "3.7.8", "3.7.9" => "3.7.9", ], 36 => [ "3.6" => "3.6", "3.6.1" => "3.6.1", "3.6.2" => "3.6.2", "3.6.3" => "3.6.3", "3.6.4" => "3.6.4", "3.6.5" => "3.6.5", "3.6.6" => "3.6.6", "3.6.7" => "3.6.7", "3.6.8" => "3.6.8", "3.6.9" => "3.6.9", "3.6.10" => "3.6.10", ], 35 => [ "3.5" => "3.5", "3.5.1" => "3.5.1", "3.5.2" => "3.5.2", "3.5.3" => "3.5.3", "3.5.4" => "3.5.4", "3.5.5" => "3.5.5", "3.5.6" => "3.5.6", "3.5.7" => "3.5.7", "3.5.8" => "3.5.8", "3.5.9" => "3.5.9", "3.5.10" => "3.5.10", "3.5.11" => "3.5.11", "3.5.12" => "3.5.12", "3.5.13" => "3.5.13", "3.5.14" => "3.5.14", "3.5.15" => "3.5.15", "3.5.16" => "3.5.16", "3.5.17" => "3.5.17", "3.5.18" => "3.5.18", ], 34 => [ "3.4" => "3.4", "3.4.1" => "3.4.1", "3.4.2" => "3.4.2", "3.4.3" => "3.4.3", "3.4.4" => "3.4.4", "3.4.5" => "3.4.5", "3.4.6" => "3.4.6", "3.4.7" => "3.4.7", "3.4.8" => "3.4.8", "3.4.9" => "3.4.9", ], 33 => [ "3.3" => "3.3", "3.3.1" => "3.3.1", "3.3.2" => "3.3.2", "3.3.3" => "3.3.3", "3.3.4" => "3.3.4", "3.3.5" => "3.3.5", "3.3.6" => "3.3.6", "3.3.7" => "3.3.7", "3.3.8" => "3.3.8", "3.3.9" => "3.3.9", ], 32 => [ "3.2" => "3.2", "3.2.1" => "3.2.1", "3.2.2" => "3.2.2", "3.2.3" => "3.2.3", "3.2.4" => "3.2.4", "3.2.5" => "3.2.5", "3.2.6" => "3.2.6", "3.2.7" => "3.2.7", "3.2.8" => "3.2.8", "3.2.9" => "3.2.9", ], 31 => [ "3.1" => "3.1", "3.1.1" => "3.1.1", "3.1.2" => "3.1.2", "3.1.3" => "3.1.3", "3.1.4" => "3.1.4", "3.1.5" => "3.1.5", "3.1.6" => "3.1.6", "3.1.7" => "3.1.7", "3.1.8" => "3.1.8", "3.1.9" => "3.1.9", "3.1.10" => "3.1.10", "3.1.11" => "3.1.11", "3.1.12" => "3.1.12", "3.1.13" => "3.1.13", "3.1.14" => "3.1.14", "3.1.15" => "3.1.15", "3.1.16" => "3.1.16", "3.1.17" => "3.1.17", "3.1.18" => "3.1.18", ], 30 => [ "3.0" => "3.0", "3.0.1" => "3.0.1", "3.0.2" => "3.0.2", "3.0.3" => "3.0.3", "3.0.4" => "3.0.4", "3.0.5" => "3.0.5", "3.0.6" => "3.0.6", "3.0.7" => "3.0.7", "3.0.8" => "3.0.8", "3.0.9" => "3.0.9", "3.0.10" => "3.0.10", ], 29 => [ "2.9" => "2.9", "2.9.1" => "2.9.1", "2.9.2" => "2.9.2", "2.9.3" => "2.9.3", "2.9.4" => "2.9.4", "2.9.5" => "2.9.5", "2.9.6" => "2.9.6", "2.9.7" => "2.9.7", "2.9.8" => "2.9.8", "2.9.9" => "2.9.9", ], 28 => [ "2.8" => "2.8", "2.8.1" => "2.8.1", "2.8.2" => "2.8.2", "2.8.3" => "2.8.3", "2.8.4" => "2.8.4", "2.8.5" => "2.8.5", "2.8.6" => "2.8.6", "2.8.7" => "2.8.7", "2.8.8" => "2.8.8", "2.8.9" => "2.8.9", "2.8.10" => "2.8.10", "2.8.11" => "2.8.11", "2.8.12" => "2.8.12", ], 27 => [ "2.7" => "2.7", "2.7.1" => "2.7.1", "2.7.2" => "2.7.2", "2.7.3" => "2.7.3", "2.7.4" => "2.7.4", "2.7.5" => "2.7.5", "2.7.6" => "2.7.6", "2.7.7" => "2.7.7", "2.7.8" => "2.7.8", "2.7.9" => "2.7.9", "2.7.10" => "2.7.10", "2.7.11" => "2.7.11", "2.7.12" => "2.7.12", "2.7.13" => "2.7.13", "2.7.14" => "2.7.14", "2.7.15" => "2.7.15", "2.7.16" => "2.7.16", "2.7.17" => "2.7.17", "2.7.18" => "2.7.18", "2.7.19" => "2.7.19", "2.7.20" => "2.7.20", ], 26 => [ "2.6" => "2.6", "2.6.1" => "2.6.1", "2.6.2" => "2.6.2", "2.6.3" => "2.6.3", "2.6.4" => "2.6.4", "2.6.5" => "2.6.5", "2.6.6" => "2.6.6", "2.6.7" => "2.6.7", "2.6.8" => "2.6.8", "2.6.9" => "2.6.9", "2.6.10" => "2.6.10", "2.6.11" => "2.6.11", ], 25 => [ "2.5" => "2.5", "2.5.1" => "2.5.1", "2.5.2" => "2.5.2", "2.5.3" => "2.5.3", "2.5.4" => "2.5.4", "2.5.5" => "2.5.5", "2.5.6" => "2.5.6", "2.5.7" => "2.5.7", "2.5.8" => "2.5.8", "2.5.9" => "2.5.9", ], 24 => [ "2.4" => "2.4", "2.4.1" => "2.4.1", "2.4.2" => "2.4.2", "2.4.3" => "2.4.3", "2.4.4" => "2.4.4", "2.4.5" => "2.4.5", "2.4.6" => "2.4.6", "2.4.7" => "2.4.7", "2.4.8" => "2.4.8", "2.4.9" => "2.4.9", "2.4.10" => "2.4.10", "2.4.11" => "2.4.11", ], 23 => [ "2.3" => "2.3", "2.3.1" => "2.3.1", "2.3.2" => "2.3.2", "2.3.3" => "2.3.3", "2.3.4" => "2.3.4", "2.3.5" => "2.3.5", "2.3.6" => "2.3.6", "2.3.7" => "2.3.7", "2.3.8" => "2.3.8", "2.3.9" => "2.3.9", "2.3.10" => "2.3.10", "2.3.11" => "2.3.11", ], 22 => [ "2.2" => "2.2", "2.2.1" => "2.2.1", "2.2.2" => "2.2.2", "2.2.3" => "2.2.3", "2.2.4" => "2.2.4", "2.2.5" => "2.2.5", "2.2.6" => "2.2.6", "2.2.7" => "2.2.7", "2.2.8" => "2.2.8", "2.2.9" => "2.2.9", "2.2.10" => "2.2.10", "2.2.11" => "2.2.11", ], 21 => [ "2.1" => "2.1", "2.1.1" => "2.1.1", "2.1.2" => "2.1.2", "2.1.3" => "2.1.3", "2.1.4" => "2.1.4", "2.1.5" => "2.1.5", "2.1.6" => "2.1.6", "2.1.7" => "2.1.7", "2.1.8" => "2.1.8", "2.1.9" => "2.1.9", "2.1.10" => "2.1.10", ], 20 => [ "2.0" => "2.0", "2.0.1" => "2.0.1", "2.0.2" => "2.0.2", "2.0.3" => "2.0.3", "2.0.4" => "2.0.4", "2.0.5" => "2.0.5", "2.0.6" => "2.0.6", "2.0.7" => "2.0.7", "2.0.8" => "2.0.8", "2.0.9" => "2.0.9", "2.0.10" => "2.0.10", ], 19 => [ "1.9" => "1.9", "1.9.1" => "1.9.1", "1.9.2" => "1.9.2", "1.9.3" => "1.9.3", "1.9.4" => "1.9.4", "1.9.5" => "1.9.5", "1.9.6" => "1.9.6", "1.9.7" => "1.9.7", "1.9.8" => "1.9.8", "1.9.9" => "1.9.9", "1.9.10" => "1.9.10", "1.9.11" => "1.9.11", "1.9.12" => "1.9.12", "1.9.13" => "1.9.13", "1.9.14" => "1.9.14", "1.9.15" => "1.9.15", "1.9.16" => "1.9.16", "1.9.17" => "1.9.17", "1.9.18" => "1.9.18", "1.9.19" => "1.9.19", ], ]