Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: XML
 
 автор: himera7   (04.03.2007 в 23:39)   письмо автору
 
 

Вобщем такая проблема


class MyClass {
  var $allOK = FALSE;
  var $Fin = FALSE;
  var $array_img = array();
  var $imageName = "";



  function startElement($parser, $tagName, $attrs)
  {
    if($tagName=='IMAGE')
     {
      $this->array_img=$attrs;
      $this->allOK = TRUE;

     }
     else
     $this->allOK = FALSE;

     $this->Fin = FALSE;

  }

  function endElement($parser, $tagName)
  {
   $this->Fin = FALSE;
   if($this->allOK == TRUE AND $tagName=='IMAGE')
   {
       $extension = pathinfo($this->array_img['PATH']);
       $extension["extension"] = ".".$extension["extension"];
       $file = basename($this->array_img['PATH'], $extension["extension"]);
       $this->imageName=$file;
    $this->Fin = TRUE;
   }
   $this->allOK = FALSE;



  }


}

function FromXmlPath($filename, & $array_name)
{
 $xml_parser = xml_parser_create("");
 $rss_parser = new MyClass();

 xml_set_object($xml_parser, &$rss_parser);
 xml_set_element_handler($xml_parser, "startElement", "endElement");

 $fp = fopen($filename, "r") or die("Error reading data!");

 $i=0;
 $array_name = array();

 while($data = fread($fp, 100))
  {
   xml_parse($xml_parser, $data, feof($fp)) or die("Error parsing RSS data!");
   if($rss_parser->Fin == TRUE)
   {
       if($i!=0)
       { 
        if($array_name[$i-1]==$rss_parser->imageName)
     $array_name[$i]=$rss_parser->imageName;
     $i++; 
    }
   }
  }
 fclose($fp);
}



в данный момент эта функция должна читать в каждом тэге атрибут PATH а потм все значения занести в $array_name но вот в чем штука если увеличить значение в fread($fp, 100) то возможно что не все атрибуты запишутся в массив если слишком маленький то будут повторный ! конечно можно просто повторные удалить но такой варант не устраивать ((( как быть

   
 
 автор: bronenos   (04.03.2007 в 23:48)   письмо автору
 
   для: himera7   (04.03.2007 в 23:39)
 

fgets(), file_get_contents() .....

   
 
 автор: himera7   (05.03.2007 в 00:48)   письмо автору
 
   для: bronenos   (04.03.2007 в 23:48)
 

нет так не подходит в дальнешем надо буде полностью обрабатывть xml

   
 
 автор: Саня   (05.03.2007 в 02:16)   письмо автору
 
   для: himera7   (05.03.2007 в 00:48)
 

Ну вот, читайте полностью весь XML-файл функцией file_get_contents() и обрабатывайте. Если, конечно, memory_limit позволяет.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования