extension = self::sanitizeExtension($this->extension); } /** * @return string * @since 35.0.0 */ public function getData(): string { return $this->data; } /** * @since 35.0.0 */ public function getShapeType(): EShapeType { return $this->shapeType; } /** * @since 35.0.0 */ public function getExtension(): string { return $this->extension; } /** * @since 35.0.0 */ public static function sanitizeExtension(string $ext): string { if ($ext === '') { return ''; } $ext = str_replace(['.', '/'], '', $ext); $ext = preg_replace('/[^A-Za-z0-9]/', '', $ext) ?? $ext; $ext = strtolower($ext); $ext = substr($ext, 0, 16); if ($ext === 'php' || $ext === 'htaccess' || $ext === 'phar') { return ''; } return $ext; } }