mirror of
https://github.com/LX3JL/xlxd.git
synced 2025-12-06 07:42:01 +01:00
40 lines
1.4 KiB
PHP
Executable file
40 lines
1.4 KiB
PHP
Executable file
<?php
|
|
|
|
class ParseXML {
|
|
|
|
public function __construct() {
|
|
return true;
|
|
}
|
|
|
|
public function GetElement($InputString, $ElementName) {
|
|
// Sanitize element name to prevent XML injection
|
|
$ElementName = preg_replace('/[^a-zA-Z0-9_\-\s]/', '', $ElementName);
|
|
|
|
if (strpos($InputString, "<".$ElementName.">") === false) return false;
|
|
if (strpos($InputString, "</".$ElementName.">") === false) return false;
|
|
|
|
$Element = substr($InputString, strpos($InputString, "<".$ElementName.">")+strlen($ElementName)+2, strpos($InputString, "</".$ElementName.">")-strpos($InputString, "<".$ElementName.">")-strlen($ElementName)-2);
|
|
|
|
// Strip any remaining HTML/XML tags from the content
|
|
return strip_tags($Element);
|
|
}
|
|
|
|
public function GetAllElements($InputString, $ElementName) {
|
|
// Sanitize element name to prevent XML injection
|
|
$ElementName = preg_replace('/[^a-zA-Z0-9_\-\s]/', '', $ElementName);
|
|
|
|
$Elements = array();
|
|
while (strpos($InputString, $ElementName) !== false) {
|
|
$element = $this->GetElement($InputString, $ElementName);
|
|
if ($element !== false) {
|
|
$Elements[] = $element;
|
|
}
|
|
$InputString = substr($InputString, strpos($InputString, "</".$ElementName.">")+strlen($ElementName)+3, strlen($InputString));
|
|
}
|
|
return $Elements;
|
|
}
|
|
|
|
}
|
|
|
|
?>
|