Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] otwieranie xml
Forum PHP.pl > Forum > Przedszkole
motor
Witam znalazłem taki skrypt dopasowałem już go do swojej strony wszystko działa tylko mam taki jeden problem bo wyświetlony wynik chce zapisać do pliku ,
i tu mój problem jak przypisać zmienne dla np imie nazwisko
$ imie ='?questionmark.gif';
$nazwisko ="?questionmark.gif"

wyświetlany wynik to
  1. <?php
  2. <b>Imię i nazwisko</b>: '.$redaktor -> PobierzPersonalia().'<br>
  3. ?>


oto skrypt
  1. <?php
  2.  
  3.  class redaktor{
  4. var $id;
  5. var $nick;
  6. var $imie;
  7. var $nazwisko;
  8. var $mail;
  9. var $www;
  10. var $funkcja;
  11. var $opis;
  12.  
  13. function redaktor($id){
  14.  $this -> id = $id;
  15.  $this -> www = '';
  16. }
  17.  
  18. function PobierzPersonalia(){
  19.  return $this -> imie.' '.$this -> nazwisko;
  20. }
  21.  }
  22.  
  23.  
  24.  
  25.  $int = 0;
  26.  $redakcja = array();
  27.  $czy_redaktor = 0;
  28.  
  29.  
  30.  function tag_start($parser, $attr, $params){
  31. global $act_tag, $int, $redakcja, $czy_redaktor;
  32. if($attr == 'REDAKTOR' && $czy_redaktor == 1){
  33.  die('Błąd: Niedozwolone zagnieżdżenie redaktorów! :]<br>');
  34. }elseif($attr == 'REDAKTOR' && $czy_redaktor == 0){
  35.  $redakcja[$int] = new redaktor($params['ID']);
  36.  $czy_redaktor = 1;
  37. }
  38.  
  39. if($czy_redaktor == 1){
  40.  if($attr != 'PERSONALIA'){
  41. $act_tag = $attr;
  42.  }else{
  43. $redakcja[$int] -> imie = $params['IMIE'];
  44. $redakcja[$int] -> nazwisko = $params['NAZWISKO'];
  45.  }
  46. }
  47.  }
  48.  
  49.  
  50.  function tag_text($parser, $text){
  51. global $act_tag, $int, $redakcja, $czy_redaktor;
  52.  
  53. if($czy_redaktor == 1){
  54.  switch($act_tag){
  55. case 'KSYWA': $redakcja[$int] -> nick .= $text; break;
  56. case 'MAIL': $redakcja[$int] -> mail .= $text; break;
  57. case 'WWW': $redakcja[$int] -> www .= $text; break;
  58. case 'PRAWA': $redakcja[$int] -> funkcja .= $text; break;
  59. case 'OPIS': $redakcja[$int] -> opis .= $text; break;
  60.  }
  61. }
  62.  }
  63.  
  64.  
  65.  function tag_end($parser, $attr){
  66. global $act_tag, $int, $czy_redaktor;
  67. if($attr == 'REDAKTOR' && $czy_redaktor == 1){
  68.  $int++;
  69.  $czy_redaktor = 0;
  70. }
  71.  }
  72.  
  73.  
  74.  $parser = xml_parser_create();
  75.  
  76.  xml_set_element_handler($parser, 'tag_start', 'tag_end');
  77.  xml_set_character_data_handler($parser, 'tag_text');
  78.  
  79.  if(!($fp = fopen('redakcja.xml', 'r'))) {
  80. die('Nie można otworzyć podanego pliku XML!!!');
  81.  }
  82.  
  83.  while($data = fread($fp, 4096)) {
  84. if(!xml_parse($parser, $data, feof($fp))){
  85.  die(sprintf("Błąd XML: %s w linii %d",
  86.  xml_error_string(xml_get_error_code($_parser)),
  87.  xml_get_current_line_number($parser)));
  88.  }
  89. }
  90.  xml_parser_free($parser);
  91.  
  92.  echo '<center>REDAKCJA</center><br>';
  93.  
  94.  foreach($redakcja as $redaktor){
  95. echo '<hr>
  96. <b>Nick</b>: '.$redaktor -> nick.'<br>
  97. <b>Imię i nazwisko</b>: '.$redaktor -> PobierzPersonalia().'<br>
  98. <b>Mail</b>: <a href="mailto:'.$redaktor -> mail.'">'.$redaktor -> mail.'</a><br>';
  99.  }
  100. ?>
koodlaty
Z zewnątrz klasy?

Klasa jest dla php4 - pola definiowane są za pomocą var - nie ma więc ograniczeń dostępu do niech.

  1. <?php
  2. $obiekt_klasy_redaktor -> imie = 'Heniek';
  3. $obiekt_klasy_redaktor -> imie = 'Gliniak';
  4. ?>


Albo wewnątrz klasy robisz sobie metodę:

  1. <?php
  2. function Set_redaktor_value($field_name, $value)
  3. {
  4.  $this -> $field_name = $value;
  5.  return true;
  6. }
  7. ?>


Do tego oczywiście jakąś kontrole błędów powinieneś sobie zaaplikować...

A potem z zewnątrz:
  1. <?php
  2. $obiekt_klasy_redaktor -> Set_redaktor_value('imie', 'Heniek');
  3. $obiekt_klasy_redaktor -> Set_redaktor_value('nazwisko', 'Gliniak');
  4. ?>



Może nie zrozumiałem problemu i jest on bardziej złożony?
motor
Nie mój problem chyba jest bardziej prozaiczny smile.gif
po prostu udało mi się odczytać xmla i wyświetlić go na stronie ale to mi nie wystarcza bo wyniki chce wpisać do bazy do tego potrzebuje przypisać zmienne ale nie wiem jak blinksmiley.gif


  1. <?php
  2. $query = "UPDATE baza SET imie = '$imie' WHERE (id='$id')";
  3. ?>


$imie = questionmark.gif? jak tą zmienną przypisać wyciągnąć


Albo inaczej jak ma wyglądać zapytanie $qwery w moim przypadku questionmark.gif?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.