mirror of https://github.com/YGGverse/YGGo.git
ghost
1 year ago
6 changed files with 194 additions and 3 deletions
@ -0,0 +1,59 @@ |
|||||||
|
<?php |
||||||
|
|
||||||
|
class Sitemap { |
||||||
|
|
||||||
|
private $_files = []; |
||||||
|
private $_links = []; |
||||||
|
|
||||||
|
public function __construct(string $filename) { |
||||||
|
|
||||||
|
$this->_scanFiles($filename); |
||||||
|
$this->_scanLinks(); |
||||||
|
} |
||||||
|
|
||||||
|
private function _scanFiles(string $filename) { |
||||||
|
|
||||||
|
if ($data = @simplexml_load_file($filename)) { |
||||||
|
|
||||||
|
if (!empty($data->sitemap)) { // sitemaps index |
||||||
|
|
||||||
|
foreach ($data->sitemap as $value) { |
||||||
|
|
||||||
|
if (!empty($value->loc)) { |
||||||
|
|
||||||
|
$this->_scanFiles(trim(urldecode($value->loc))); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
} else if (!empty($data->url)) { // target file |
||||||
|
|
||||||
|
$this->_files[trim(urldecode($filename))] = []; // @TODO attributes |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
private function _scanLinks() { |
||||||
|
|
||||||
|
foreach ($this->_files as $filename => $attributes) { |
||||||
|
|
||||||
|
if ($data = @simplexml_load_file($filename)) { |
||||||
|
|
||||||
|
if (!empty($data->url)) { |
||||||
|
|
||||||
|
foreach ($data->url as $value) { |
||||||
|
|
||||||
|
if (!empty($value->loc)) { |
||||||
|
|
||||||
|
$this->_links[trim(urldecode($value->loc))] = []; // @TODO attributes |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
public function getLinks() { |
||||||
|
|
||||||
|
return $this->_links; |
||||||
|
} |
||||||
|
} |
Loading…
Reference in new issue