Input is not proper UTF-8, indicate encoding !

losb

Новичок
Input is not proper UTF-8, indicate encoding !

PHP:
$doc = new addTo('1.0', 'UTF-8');
$doc->formatOutput = true;
$doc->load($xmlFile);

$doc->addE($var1, $var2, $var3);

$doc->saveXML();
$doc->save($xmlFile);
addTo - подкласс домДокумента
значит..первый раз, когда xml файлик пуст все срабатывает, второй раз показывает вот что
"Warning: DOMDocument::load() [function.DOMDocument-load]: Input is not proper UTF-8, indicate encoding ! Bytes: 0xEE 0xF1 0xEF 0xE8 "

ошибка кодировки, выходит что он сам не может прочитать то что туда записал..подскажите что делать!

-~{}~ 27.02.09 00:52:

забыл добавить, задача просто открыть , записать, сохранить...
 

FB3

Новичок
Посоветовал бы научиться постить проблему нормально, а не постить ее на много форумов да еще и разный код (с ошибками)...
 

losb

Новичок
2FB3, ага спасибо...

Для начала, всего на двух на которых сам часто бываю, кроме того, какая вам разница где и сколько раз я спрашивал? И что конкретно вам непонятно в проблеме?

И если я пропустил где-то точку с запятой, это суть дела не меняет!
 

slach

Новичок
ну для начала

"Warning: DOMDocument::load() [function.DOMDocument-load]: Input is not proper UTF-8, indicate encoding ! Bytes: 0xEE 0xF1 0xEF 0xE8 "

это в какой строке??

в приведенном коде как то не видно saveXML в файл никакого

значит смотрим через xmllint ЧТО там записано
выявляем где конкретно налажали

-~{}~ 27.02.09 17:48:

ой тьфу
прошу прощения, както криво код посмотрел

короче когда сделал
$doc->saveXML();
$doc->save($xmlFile);

там в $xmlFile надо все таки проверить, через внешнуюю тузлу от libxml (xmllint.exe) что мы все таки записали то что надо
 

FB3

Новичок
С самим DOMDocument такого не происходит?
Если нет, то нужно смотреть класс addTo.
А ошибка: $doc->addE($var1, $var2, $var3); - $doc->addElem($var1, $var2, $var3); - второй вариант был на другом форуме.
 

losb

Новичок
Автор оригинала: FB3
С самим DOMDocument такого не происходит?
Если нет, то нужно смотреть класс addTo.
А ошибка: $doc->addE($var1, $var2, $var3); - $doc->addElem($var1, $var2, $var3); - второй вариант был на другом форуме.
PHP:
Class addTo extends domDocument {
    function __construct() {
        parent::__construct();
    }
   
    function addElem($picture, $thumb, $full, $title, $desc, $cat) {
  
        $pictureElement = $this->createElement("picture");
        $pictureElement->appendChild($this->createTextNode($picture));
		$this->documentElement->appendChild($pictureElement);
        
  	    $thumbElement = $this->createElement("thumb");
        $thumbElement->appendChild($this->createTextNode($thumb));
		$this->documentElement->appendChild($thumbElement);
        
        $fullElement = $this->createElement("full");
        $fullElement->appendChild($this->createTextNode($full));
		$this->documentElement->appendChild($fullElement);
        
        $titleElement = $this->createElement("title");
        $titleElement->appendChild($this->createTextNode($title));
		$this->documentElement->appendChild($titleElement);
        
        $descElement = $this->createElement("desc");
        $descElement->appendChild($this->createTextNode($desc));
		$this->documentElement->appendChild($descElement);
        
        $catElement = $this->createElement("cat");
        $catElement->appendChild($this->createTextNode($cat));
		$this->documentElement->appendChild($catElement);

      
    }
   
}

function generateXML(){

		$picture = "photo/".$_FILES["ufile"]["name"];
		$thumb = "thumb/".$_FILES["ufile"]["name"];	
		$full = "full/".$_FILES["ufile"]["name"];	
		$title = $_POST["title"];
		$desc = $_POST["desc"];
		$cat = "all";
		$toAlb = $_POST["album"].".xml";
			
			$doc = new addTo('1.0', 'UTF-8');
			$doc->formatOutput = true;
                        $doc->encoding = 'UTF-8';
			
			$doc->load($toAlb);
	
			$doc->addElem($picture, $thumb, $full, $title, $desc, $cat);	
		
			$doc->saveXML();
			$doc->save($toAlb);
			
}
предварительно сам xml файл создается вот так:

PHP:
<?php 

$nalb = trim($GLOBALS['HTTP_RAW_POST_DATA']);

	
		$doc = new DOMDocument('1.0');
		$doc->formatOutput = true;
		$doc->encoding = 'UTF-8';


		$root = $doc->createElement('pictures');
		$root = $doc->appendChild($root);

		$doc->saveXML();
		$doc->save($nalb.".xml");

?>
попытаюсь еще раз объяснить, значит создается файл xml далее в него добавляется информация через функцию generateXML(), но происходит это только один раз, второй раз добавить информацию не выходит, так как он пишет ошибку которую я указал выше!
 
Сверху