Simple XML

Status
Niet open voor verdere reacties.

Tijme

Gebruiker
Lid geworden
29 jan 2009
Berichten
535
Hoi allemaal,

ik krijg de volgende error in mijn php framework, maar ik heb geen idee waar de error vandaan komt.
Ik gebruik simplexml om verschillende talen te ondersteunen. ( In de xml bestanden staan de vertalingen ). De language class is dus de enige class waar ik simplexml in gebruik.

Fatal error: Uncaught exception 'Exception' with message 'Serialization of 'SimpleXMLElement' is not allowed' in [no active file]:0 Stack trace: #0 {main} thrown in [no active file] on line 0

Dit is mijn class

PHP:
	class language {
	
		private $languageFile		= false;
		private $languageXML		= false;
		private $translatedString	= 'Undefined';

		public function translate($languageTag, $type = 'content'){

			if(isset(debug_backtrace()[1]['class'])){
				$this->languageFile = $this->getLanguageFile(true, 'vreemwurk');
			} else {
				$this->languageFile = $this->getLanguageFile(true, 'vreemwurk');
			}

			if($this->languageFile != false){
				$this->languageXML = simplexml_load_file($this->languageFile);
				if(isset($this->languageXML->{$languageTag}->{$type})){
					$this->translatedString = $this->languageXML->{$languageTag}->{$type};
				} else { $this->translatedString = $languageTag; }
			} else { $this->translatedString = $languageTag; }
			
			return $this->translatedString;
		}
		
		public function getLanguageFile($class = false, $file = false){
			$language = PREFERED_LANGUAGE;
			if($class == true && $file != false && file_exists(PATH_RESOURCES . 'languages' . DS . PREFERED_LANGUAGE . '_' . $file . '.xml')){
				return PATH_RESOURCES . 'languages' . DS . PREFERED_LANGUAGE . '_' . $file . '.xml';
			} else if($class == false && $file != false && file_exists(PATH_COMPONENTS . $file . DS . PREFERED_LANGUAGE . '_' . $file . '.xml')){
				return PATH_COMPONENTS . $file . DS . PREFERED_LANGUAGE . '_' . $file . '.xml';
			} else {
				return false;
			}
		}
		
	}

Ik hoop dat jullie kunnen helpen.

Mvg,
Tijme
 
Opgelost --____--

blijkbaar returnde hij een object. Ik heb het zo opgelost

PHP:
		public function translate($languageTag, $type = 'content'){
	
			if(isset(debug_backtrace()[1]['class'])){
				$this->languageFile = $this->getLanguageFile(true, 'vreemwurk');
			} else {
				$this->languageFile = $this->getLanguageFile(true, 'vreemwurk');
			}

			if($this->languageFile != false){
				$this->languageXML = simplexml_load_file($this->languageFile);
				
				if(isset($this->languageXML->{$languageTag}->{$type})){
				
					$this->translatedString = $this->languageXML->{$languageTag}->{$type};
				
				} else { $this->translatedString = $languageTag; }
			} else { $this->translatedString = $languageTag; }

			$returnString = (string)$this->translatedString;
			return $returnString;
			
		}
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan