????JFIF??x?x????'
| Server IP : 79.136.114.73 / Your IP : 216.73.216.61 Web Server : Apache/2.4.7 (Ubuntu) PHP/5.5.9-1ubuntu4.29 OpenSSL/1.0.1f System : Linux b8009 3.13.0-170-generic #220-Ubuntu SMP Thu May 9 12:40:49 UTC 2019 x86_64 User : www-data ( 33) PHP Version : 5.5.9-1ubuntu4.29 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : ON | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /var/www/evacuationplans.astacus.se/login/ |
Upload File : |
<?php
##############################################################################################
##############################################################################################
## ##
## This snippet provides functionality to read a plist-file and parse it for use in PHP. ##
## ##
## Copyright (C) 2011 Florian Mueller <chiefspam@hotmail.com> ##
## ##
## This program is free software: you can redistribute it and/or modify ##
## it under the terms of the GNU Lessr General Public License as published by ##
## the Free Software Foundation, either version 3 of the License, or ##
## (at your option) any later version. ##
## ##
## This program is distributed in the hope that it will be useful, ##
## but WITHOUT ANY WARRANTY; without even the implied warranty of ##
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ##
## GNU Lesser General Public License for more details. ##
## ##
## You should have received a copy of the GNU Lesser General Public License ##
## along with this program. If not, see <http://www.gnu.org/licenses/>. ##
## ##
##############################################################################################
##############################################################################################
class plist {
private $file;
private $filename;
private $xmlpath;
function __construct() {
$this->setXMLPath($path);
}
function setXMLPath($value) {
$this->xmlpath = $value;
}
function getXMLPath() {
return $this->xmlpath;
}
function load($filename, $mode = 'r') {
$this->filename = $filename;
$this->file = fopen($this->getXMLPath() . $filename,$mode);
}
function getTree() {
$plist = simplexml_load_file( $this->getXMLPath() . $this->getFilename() );
$root = $plist->children();
$root = $root[ 0 ];
return $this->processElement( $root->getName(), $root->children() );
}
function getFilename() {
return $this->filename;
}
function getConfig() {
return $this->getTree();
}
function processElement( $type, $children ) {
if( $type == 'true' ) {
return true;
}
else if( $type == 'false' ) {
return false;
}
else if( $type == 'boolean') {
return ($children == 'true' ? true : false);
}
else if( $type == 'integer' ) {
return intval( (string)( $children ) );
}
else if( $type == 'string' ) {
return (string)( $children );
}
else if( $type == 'array' ) {
return $this->processArray( $children );
}
else if( $type == 'dict' ) {
return $this->processDict( $children );
}
}
function processArray( $children ) {
$array = array();
$type = '';
$value = '';
foreach ( $children as $child ) {
$type = $child->getName();
$value = $this->processElement( $type, ( $type == 'dict' || $type == 'array' ? $child->children() : $child ) );
array_push( $array, $value );
}
return $array;
}
function processDict( $children ) {
$dict = array();
$dict[ '&dict' ] = '';
$key = '';
$value = '';
$type = '';
foreach ( $children as $child ) {
if( ( $child->getName() == 'key' ) && !$key ) {
$key = (string)( $child );
}
else if( $key ) {
$type = $child->getName();
$value = $this->processElement( $type, ( $type == 'dict' || $type == 'array' ? $child->children() : $child ) );
$dict[ $key ] = $value;
$key = '';
}
}
return $dict;
}
function write($content) {
rewind($this->file);
fwrite($this->file,$content);
}
function save() {
fclose($this->file);
}
}
?>