Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z XML -> php
Forum PHP.pl > Forum > PHP
szarak
Moze ktoś wie czemu nie chce skrypt działac tzh kod :
  1. <?php
  2. // Odczyt pliku XML
  3. $plik = fopen('aktualnosci.xml',"r");
  4. $zawartosc = fread($plik, filesize('aktualnosci.xml'));
  5. fclose($plik);
  6.  
  7. // Przetwarzanie odcztanego pliku XML
  8. $xml_parser = xml_parser_create();
  9. xml_parser_set_option($xml_parser,XML_OPTION_SKIP_WHITE,1);
  10. xml_parse_into_struct($xml_parser, $zawartosc, $tablica, $index);
  11. xml_parser_free($xml_parser);
  12.  
  13. //$data = date("Y-m-d");
  14. $czas = date("H : i : s");
  15.  
  16. global $tytul,$tresc,$autor,$data,$id;
  17.  
  18. $xml = simplexml_load_file('aktualnosci.xml');
  19.  
  20. foreach($xml->wiadomosc[0]->attributes() as $a ) 
  21. {
  22.  $id = $a;
  23. }
  24. global $i;
  25. $i = $id;
  26. $tytul[$id];
  27. $tresc[$id];
  28. $autor[$id];
  29. $data[$id];
  30.  
  31. foreach ($tablica as $wartosc)
  32. {
  33. $p = $id-$i;
  34. if($wartosc["tag"]=="TYTUL")
  35. {
  36. $tytul[$p] = $wartosc["value"];
  37. }
  38. if($wartosc["tag"]=="TRESC")
  39. {
  40. $tresc[$p] = $wartosc["value"];
  41. }
  42. if($wartosc["tag"]=="AUTOR")
  43. {
  44. $autor[$p] = $wartosc["value"];
  45. }
  46. if($wartosc["tag"]=="DATA")
  47. {
  48. for ($k=0; $k<$id; $k++)
  49.  {$data[$p] = $wartosc["value"];}
  50.  
  51. }
  52. $i-1;
  53. }
  54.  
  55. for ($k=0; $k<$id; $k++)
  56. {
  57.  echo "n".$data[$k];
  58. }
  59. }
  60. ?>

plik XML:
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <aktualnosci>
  3.  <wiadomosc id="4">
  4.    <tytul>Próba</tytul>
  5.    <tresc>
  6.    blabal
  7.    </tresc>
  8.    <autor>Szarak</autor>
  9.    <data>2007-02-18</data>
  10.  </wiadomosc>
  11.  <wiadomosc id="3">
  12.    <tytul>Próba</tytul>
  13.    <tresc>
  14.    blabal
  15.    </tresc>
  16.    <autor>Szarak</autor>
  17.    <data>2007-02-17</data>
  18.  </wiadomosc>
  19.  <wiadomosc id="2">
  20.    <tytul>Próba</tytul>
  21.    <tresc>
  22.    blabal
  23.    </tresc>
  24.    <autor>Szarak</autor>
  25.    <data>2007-02-16</data>
  26.  </wiadomosc>
  27.  <wiadomosc id="1">
  28.    <tytul>Otwarcie strony</tytul>
  29.    <tresc>
  30.    Jest to próbny plik z wiadomością mam nadzieje ze bedzie działać !!
  31.    </tresc>
  32.    <autor>Szarak</autor>
  33.    <data>2007-02-15</data>
  34.  </wiadomosc>  
  35. </aktualnosci>


A w przegladarce umnie pokazuje sie tylko data: 2007-02-15 :/
A chciałem aby tablica $data była:
  1. <?php
  2. $data[0] = 2007-02-18
  3. $data[1] = 2007-02-17
  4. $data[2] = 2007-02-16
  5. $data[3] = 2007-02-15
  6. ?>


POMÓŻCIE NIE WIEM TOTALNIE sad.gif
em1X
musisz miec php5 zeby to zadziałało...

  1. <?php
  2. $data = simplexml_load_file("data.xml");
  3. $dates = array();
  4.  
  5. for ($i=0; $i<count($data->wiadomosc); $i++)
  6. {
  7. /* php5 */
  8. $dates[] = (string)$data->wiadomosc[$i]->data;
  9.  
  10. /* php4
  11. $obj =& $data->wiadomosc[$i];
  12. $dates[] = (string)$obj->data;
  13. */
  14. }
  15.  
  16. print "<pre>";
  17. print_r($dates);
  18. ?>
szarak
Oki już dawno zrobiłem to i działa może się komuś przyda smile.gif

Wypisywanie aktualnosci.php
  1. <?php
  2. header('Content-type: text/html; charset=UTF-8');
  3. <div align="center"><b><h1>Aktualności</h1></b></div>
  4. <br />
  5. <a href="dodanie.php">Dodawanie aktualności</a>
  6. <hr />
  7. ');
  8.  
  9. // Odczyt pliku XML
  10. $plik = fopen('aktualnosci.xml',"r");
  11. $zawartosc = fread($plik, filesize('aktualnosci.xml'));
  12. fclose($plik);
  13.  
  14. // Przetwarzanie odcztanego pliku XML
  15. $xml_parser = xml_parser_create();
  16. xml_parser_set_option($xml_parser,XML_OPTION_SKIP_WHITE,1);
  17. xml_parse_into_struct($xml_parser, $zawartosc, $tablica, $index);
  18. xml_parser_free($xml_parser);
  19.  
  20. // Wypisywanie zawartości XML
  21. foreach ($tablica as $wartosc)
  22. {
  23. if($wartosc["tag"]=="TYTUL")
  24.  
  25. echo "<strong>".$wartosc["value"]."</strong> <br />";
  26.  
  27. if($wartosc["tag"]=="TRESC")
  28.  
  29. echo $wartosc["value"]."<br />";
  30.  
  31. if($wartosc["tag"]=="AUTOR")
  32.  
  33. print "Autor: <i>".$wartosc["value"]."</i><br />";
  34.  
  35. if($wartosc["tag"]=="DATA")
  36.  
  37. echo "Data: ".$wartosc["value"]."<br /><br />";
  38.  
  39. }
  40. ?>


Dodawanie aktualnosci dodanie.php
  1. <?php
  2. header('Content-type: text/html; charset=UTF-8');
  3.  
  4. $r = 0;
  5.  
  6. if($_POST['dodaj']=='Dodaj')
  7. {
  8. // Odczyt pliku XML
  9. $plik = fopen('aktualnosci.xml',"r");
  10. flock($plik,1);
  11. $zawartosc = fread($plik, filesize('aktualnosci.xml'));
  12. flock($plik,3);
  13. fclose($plik);
  14.  
  15. // Przetwarzanie odcztanego pliku XML
  16. $xml_parser = xml_parser_create();
  17. //xml_parser_set_option($xml_parser,XML_OPTION_SKIP_WHITE,1);
  18. xml_parse_into_struct($xml_parser, $zawartosc, $tablica, $index);
  19. xml_parser_free($xml_parser);
  20.  
  21. $dat = date("Y-m-d");
  22. $czas = date("H : i : s");
  23.  
  24. global $tytul,$tresc,$autor,$data,$id;
  25.  
  26. // Określenie jaki jeste numer postu
  27. $xml = simplexml_load_file('aktualnosci.xml');
  28.  
  29. foreach($xml->wiadomosc[0]->attributes() as $a ) 
  30. {
  31.  $id = $a;
  32. }
  33.  
  34. global $i;
  35. $i = 0;
  36.  
  37. // Zapisanie w tablicy zawartości postów z plików
  38. foreach ($tablica as $wartosc)
  39. {
  40. $p = $i;
  41.  
  42. if($wartosc["tag"]=="TYTUL")
  43. {
  44. $tytul[$p] = $wartosc["value"];
  45.  
  46. }
  47. if($wartosc["tag"]=="TRESC")
  48. {
  49. $tresc[$p] = $wartosc["value"];
  50. }
  51. if($wartosc["tag"]=="AUTOR")
  52. {
  53. $autor[$p] = $wartosc["value"];
  54. }
  55. if($wartosc["tag"]=="DATA")
  56. {
  57.  $data[$p] = $wartosc["value"];
  58. $i = $i +1;
  59. }
  60. }
  61.  
  62. // Zrobienie miejsca na nowy post
  63. global $k;
  64. $k = 0;
  65.  
  66. do{
  67. $tytult[$k+1] = $tytul[$k];
  68. $tresct[$k+1] = $tresc[$k];
  69. $autort[$k+1] = $autor[$k];
  70. $datat[$k+1] = $data[$k];
  71. $k++;
  72. }while($k < $id);
  73.  
  74. // Dodanie nowego postu
  75. $tytult[0] = $_POST['tytul'];
  76. $tresct[0] = $_POST['tresc'];
  77. $autort[0] = $_POST['autor'];
  78. $datat[0] = $dat;
  79.  
  80. // Formatowanie zawartości XML
  81. $znaczniki = '<?xml version="1.0" encoding="UTF-8" ?>';
  82. $znaczniki .= "n";
  83. $znaczniki .= '<aktualnosci>';
  84. $znaczniki .= "n";
  85. for($j=0; $j<($id+1); $j++)
  86. {
  87. $znaczniki .= '
  88. <wiadomosc id="'.(($id+1)-$j).'">
  89.  <tytul>'.$tytult[$j].'</tytul>
  90.  <tresc>'.$tresct[$j].'</tresc>
  91.  <autor>'.$autort[$j].'</autor>
  92.  <data>'.$datat[$j].'</data>
  93. </wiadomosc>';
  94.  $znaczniki .= "n";
  95. }
  96. $znaczniki .= "n";
  97. $znaczniki .='</aktualnosci>';
  98.  
  99. //Wpisywanie do pliku zawartości
  100. $plik = fopen('aktualnosci.xml',"w");
  101. flock($plik,2);
  102. fwrite($plik,$znaczniki);
  103. flock($plik,3);
  104. fclose($plik);
  105.  
  106. $r = 1;
  107. }
  108.  
  109. if($r == 1)
  110. {
  111. echo "Operacja dodawania news'a powiodła się :) !!";
  112. }
  113.  
  114. echo '<form action="dodanie.php" method="POST">
  115. <table>
  116. <tr>
  117. <td>
  118. Tytuł:
  119. </td>
  120. <td>
  121. <input type="text" name="tytul" />
  122. </td>
  123. </tr>
  124. <tr>
  125. <td valign="top">
  126. Treść:
  127. </td>
  128. <td>
  129. <textarea name="tresc" rows="5" cols="50"></textarea>
  130. </td>
  131. </tr>
  132. <tr>
  133. <td>
  134. Autor:
  135. </td>
  136. <td>
  137. <input type="text" name="autor" />
  138. </td>
  139. </tr>
  140. </table>
  141. <input type="submit" name="dodaj" value="Dodaj" />
  142. <input type="reset" value="Wyczyść" />
  143. </form>
  144. ';
  145. ?>


Baza z aktualnościami aktualnosci.xml
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <aktualnosci>
  3.  
  4. <wiadomosc id="10">
  5. <tytul>dkdfd</tytul>
  6. <tresc>sdfsd</tresc>
  7. <autor>ewwef</autor>
  8. <data>2007-03-07</data>
  9. </wiadomosc>
  10.  
  11. <wiadomosc id="9">
  12. <tytul>Próba 10</tytul>
  13. <tresc>dfdsfsdf</tresc>
  14. <autor>Szarak</autor>
  15. <data>2007-02-21</data>
  16. </wiadomosc>
  17.  
  18. <wiadomosc id="8">
  19. <tytul>Próba 9</tytul>
  20. <tresc>ppppppppp</tresc>
  21. <autor>Szarak</autor>
  22. <data>2007-02-21</data>
  23. </wiadomosc>
  24.  
  25. <wiadomosc id="7">
  26. <tytul>Próba 8</tytul>
  27. <tresc>:) czy sie wyswietli questionmark.gif</tresc>
  28. <autor>Szarak</autor>
  29. <data>2007-02-21</data>
  30. </wiadomosc>
  31.  
  32. <wiadomosc id="6">
  33. <tytul>Próba 7</tytul>
  34. <tresc>Czy sie uda powrót questionmark.gif</tresc>
  35. <autor>Szarak</autor>
  36. <data>2007-02-21</data>
  37. </wiadomosc>
  38.  
  39. <wiadomosc id="5">
  40. <tytul>Próba 5</tytul>
  41. <tresc>Kolejne dodanie :)</tresc>
  42. <autor>Szarak</autor>
  43. <data>2007-02-21</data>
  44. </wiadomosc>
  45.  
  46. <wiadomosc id="4">
  47. <tytul>Próba 4</tytul>
  48. <tresc>Pierwszy wpis z pliku dodanie.php</tresc>
  49. <autor>Szarak</autor>
  50. <data>2007-02-21</data>
  51. </wiadomosc>
  52.  
  53. <wiadomosc id="3">
  54. <tytul>Próba 3</tytul>
  55. <tresc>Działa wspaniale :)</tresc>
  56. <autor>Szarak</autor>
  57. <data>2007-02-17</data>
  58. </wiadomosc>
  59.  
  60. <wiadomosc id="2">
  61. <tytul>Próba 2</tytul>
  62. <tresc>Jest oki</tresc>
  63. <autor>Szarak</autor>
  64. <data>2007-02-16</data>
  65. </wiadomosc>
  66.  
  67. <wiadomosc id="1">
  68. <tytul>Otwarcie strony</tytul>
  69. <tresc>Jest to próbny plik z wiadomością mam nadzieje ze bedzie działać !!</tresc>
  70. <autor>Szarak</autor>
  71. <data>2007-02-15</data>
  72. </wiadomosc>
  73.  
  74. </aktualnosci>


P.S.
Na 100% działa bo sprawdzałem smile.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.