Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Zend] XML
Forum PHP.pl > Forum > PHP > Frameworki
sleedz
Witam.
Mam zrobiony controller który mi generuje xml'a, działa to na ff ale już na ie i chrome nie działa.
oto kod:
  1. public function getStuffXmlAction()
  2. {
  3. $this->_helper->viewRenderer->setNoRender();
  4. $this -> _helper->layout()->disableLayout();
  5. $stuffDB = new Application_Model_DbTable_ProtocolStuff;
  6.  
  7. header('Content-type: application/xml; charset="utf-8"');
  8.  
  9. echo "<result>";
  10.  
  11. if(isset($_GET['destiny'])) {
  12. $destiny = $_GET['destiny'];
  13. $stuffArr = $stuffDB->fetchAll($stuffDB->select()->where('destiny = ?', $destiny));
  14. foreach($stuffArr as $stuff) {
  15. echo "<stuff>";
  16. echo "<title>".$stuff['title']."</title>";
  17. echo "<destiny>".$stuff['destiny']."</destiny>";
  18. echo "<id>".$stuff['stuff_id']."</id>";
  19. echo "<desc>".$stuff['stuff_id']."</desc>";
  20. echo "</stuff>";
  21. }
  22. } else {
  23. echo "<stuff><title>Nie podano czegoś tam</title></stuff>";
  24. }
  25. echo "</result>";
  26. }


Bardzo prosiłbym o pomoc.
Crozin
1. Co to za dziwny pomysł, żeby generować XML-a ręcznie przez echo?
2. Co to za dziwny pomysł, żeby generowanie XML-a pchać do kontrolera w ZF?
3. Kodowanie w nagłówku Content-Type nie powinno być w cudzysłowiu.
4. Pokaż wygenerowany, finalny kod.
sleedz
W ie jest taki komunikat
Cytat
Nie można wyświetlić strony XML
Nie można przeglądać wejścia XML przy użyciu arkusza stylów . Popraw błąd, a następnie kliknij przycisk Odśwież lub spróbuj ponownie później.


--------------------------------------------------------------------------------

Nieprawidłowa wartość na najwyższym poziomie dokumentu. Błąd podczas przetwarzania zasobu 'http://bum/Raporting/public/prot...

<result><company><name>Lorem Ipsum Tralalala</name><client1>Lorem Ipsum</client1><c...


Próbowałem też ustawić pusty layout i w widoku wypisywanie znaczników xml ale nie chce mi to działać, tak jakby oprócz xml'a było coś jeszcze w wygenerowanym dokumencie.
Crozin
Nie możesz zobaczyć po prostu w źródłe dokumentu (strony) jaka jest jej treść?
sleedz
Plik źródłowy XML jest niedośtępny do przeglądania.
Usunąłem header żeby zobaczyć co się generuje i okazuje się że jest spacja na samym początku. tylko że teraz nie wiem gdzie ona jest żeby ją usunąć.
Crozin
Być może jest to UTF'owski BOM - w Googleu/na forum masa odpowiedzi n/t tego czym to jest oraz jak się tego pozbyć.
sleedz
Szukałem już w googlach i nic nie znalazłem. Może źle szukam...
Crozin
Nie wierzę, że szukałeś bo wpisanie na pałę utf bom już w pierwszym wyniku daje konkretne wyjaśnienie co to jest i jak się tego pozbyć.
sleedz
Żeby pozbyć się tej spacji muszę otworzyć każdy plik i usunąć z niego sygnaturę utf-8? Nie ma jakiegoś szybszego rozwiązania? Bo zend ma dość dużo plików
daniel1302
Ja w zendzie miałem to samo i w którymś pliku chyba w konfiguracji albo bootloaderze zrobiłem takie coś

Kod
<?php ... ?>


Jeśli nie widzicie to patrzcie
<php ... ?> _(spacja tutaj byla)

Cały czas pluł się Validator HTML, że nie mogę zaczynać od spacji tak mnie to zdenerwowało, że 2 dni szukałem po ZF i nic... Ale przynajmniej poznałem mniej wiecej jego budowe. A wkońu samo się znalazło:D

a co do usuwania utf8 ściągnij program Gżeżdzółka XP(chyba tak to sie pisało) i zmien kodowanie na UTF8 bez BOM

Możesz w tym programie całą grupę programó lub całe foldery dodawać.
Crozin
Plików Zenda ruszać nie musisz, wystarczy raptem kilka Twoich (o ile problem rzeczywiście leży w BOM-ie, a nie w jakiejś zagubionej spacji).
sleedz
Dzieki wielkie za pomoc. Rozwiązałem problem. W niektórych plikach był jakiś znak na samym początku, przed <?php, a w innych dodatkowa linia na końcu, za ?>
daniel1302
Dlatego najlepiej nie kończyć plików dostępnych dla ogółu modułów. Kiedyś na kursie Zenda wykladowca tak mówił
Kod
<?php
....


i wtedy ani errora ani problemu niema.
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.