MozillaPL.org - polskie centrum Mozilli

Główne menu:

[xhtml] Typ MIME w PHP

Jak tworzyć strony WWW zgodnie ze standardami

Moderator: Pomocy?!

[xhtml] Typ MIME w PHP

Postautor: Nerf » 06 stycznia 2005, 16:21

Przeglądarka: Mozilla/5.0 (Windows; U; Win98; pl-PL; rv:1.7.5) Gecko/20041108 Firefox/1.0

Zainspirowany niedawną owocną dyskusją ;) chciałem zapytać się, jak serwer ma rozpoznać typ mime w dokumencie XHTML 1.1, w którym nie jest użyty znacznik <meta/> i który ma rozszerzenie .php (zakładam, że PHP na serwerze generuje zarówno dokumenty HTML, jak i XHTML)?
I believe that all government is evil, and that trying to improve it is largely a waste of time.
H.L. Mencken
Nerf
 
Posty: 411
Z nami od: 14 stycznia 2003, 22:25
Lokalizacja: Piła-Warszawa

Re: [xhtml] Typ MIME w PHP

Postautor: zwierz » 06 stycznia 2005, 16:38

Przeglądarka: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8a6) Gecko/20050105 Firefox/1.0+

Skrypt PHP może mieć dowolny typ pliku (po przetworzeniu przez serwer). Wszystko zależy od ustawień serwera lub od Ciebie.
zwierz
Moderator
 
Posty: 1914
Z nami od: 31 sierpnia 2003, 10:13
Lokalizacja: Kraków

Postautor: mateucho » 06 stycznia 2005, 18:25

Przeglądarka: Mozilla/5.0 (X11; U; Linux i686; pl-PL; rv:1.7.5) Gecko/20041108 Firefox/1.0

Skorzystaj z header i nadaj mu co chcesz
Zjednoczmy się i połóźmy kres agresjii
Zielone Żabki
mateucho
 
Posty: 65
Z nami od: 07 września 2004, 19:07
Lokalizacja: Katowice

Postautor: Strus » 06 stycznia 2005, 23:21

Przeglądarka: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.5) Gecko/20050104 Firefox/1.0

To ja może napiszę konkretnie :)

Kod: Zaznacz cały
<?php
header("Content-type:application/xhtml+xml");
?>
Strus
 
Posty: 301
Z nami od: 29 stycznia 2004, 18:03
Lokalizacja: Bochnia

Postautor: Nerf » 07 stycznia 2005, 14:50

Przeglądarka: Mozilla/5.0 (Windows; U; Win98; pl-PL; rv:1.7.5) Gecko/20041108 Firefox/1.0

Zakładam, że użytkownik nie wie nic o typach MIME, a serwer jest np. serwisem oferującym konta WWW i chce wysyłać dokumenty HTML jako text/html, a XHTML jako application/xhtml+xml. W jaki sposób ma on odróżnić typ pliku, skoro nie może tego zrobić po rozszerzeniu? Czy skorzystanie z DOCTYPE jest w tym wypadku poprawnym rozwiązaniem? (Problem jest dla mnie czysto teoretyczny).
I believe that all government is evil, and that trying to improve it is largely a waste of time.
H.L. Mencken
Nerf
 
Posty: 411
Z nami od: 14 stycznia 2003, 22:25
Lokalizacja: Piła-Warszawa

Postautor: zwierz » 07 stycznia 2005, 16:05

Przeglądarka: Mozilla/5.0 (X11; U; Linux i686; pl-PL; rv:1.7.5) Gecko/20050101 Firefox/1.0

DOCTYPE nie ma tu nic do rzeczy. Możesz dodać odpowiedni wpis na serwerze albo dodać coś takiego w pliku:
Kod: Zaznacz cały
$ha = explode(',', strtolower($_SERVER['HTTP_ACCEPT']));
         
   foreach($ha as $xhtml)
   {
      if(ereg("application/xhtml\+xml", $xhtml))
      {
         header("Content-type: application/xhtml+xml");
         break;
      }
      else
      {
         header("Content-type: text/html");
      }
   }
zwierz
Moderator
 
Posty: 1914
Z nami od: 31 sierpnia 2003, 10:13
Lokalizacja: Kraków

Postautor: Gedi » 08 stycznia 2005, 19:28

Przeglądarka: Mozilla/4.0 (compatible; MSIE 6.0; Windows 98)

Nie ma potrzeby przechodzenie przez tablicę, wystarczy:
Kod: Zaznacz cały
$charset="iso-8859-2";
substr_count($_SERVER['HTTP_ACCEPT'], 'application/xhtml+xml') ? $mime="application/xhtml+xml : $mime="text/html";
header("Content-Type:".$mime."; charset=".$charset);

Jak się "uprzeć" :D to i w jednej linijce można zapisać... .
Gedi
 
Posty: 324
Z nami od: 10 sierpnia 2003, 17:36

Postautor: zwierz » 08 stycznia 2005, 20:53

Przeglądarka: Mozilla/5.0 (X11; U; Linux i686; pl-PL; rv:1.7.5) Gecko/20050101 Firefox/1.0

Gedi pisze:Nie ma potrzeby przechodzenie przez tablicę.

No fakt :-) Przerobiłem swój inny skrypt, który służył do bardziej skomplikowanej rzeczy, a nie pomyślałem, że wystarczy substr użyć.
zwierz
Moderator
 
Posty: 1914
Z nami od: 31 sierpnia 2003, 10:13
Lokalizacja: Kraków

Postautor: Nerf » 10 stycznia 2005, 15:58

Przeglądarka: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl-PL; rv:1.7.5) Gecko/20041108 Firefox/1.0

A czy te skrypty nie przeprowadzają czasem negocjacji typu MIME? Czy też sprawdzają one, na jaki typ MIME pozwala serwer, na którym znajduje się strona? Co one właściwie robią?
I believe that all government is evil, and that trying to improve it is largely a waste of time.
H.L. Mencken
Nerf
 
Posty: 411
Z nami od: 14 stycznia 2003, 22:25
Lokalizacja: Piła-Warszawa

Postautor: zwierz » 10 stycznia 2005, 16:17

Przeglądarka: Mozilla/5.0 (X11; U; Linux i686; pl-PL; rv:1.7.5) Gecko/20050101 Firefox/1.0

Nerf pisze:ACo one właściwie robią?

Serwują przeglądarce typ application/xhtml+xml, a jeśli przeglądarka go nie obsługuje - text/html
zwierz
Moderator
 
Posty: 1914
Z nami od: 31 sierpnia 2003, 10:13
Lokalizacja: Kraków

Postautor: Strus » 11 stycznia 2005, 04:23

Przeglądarka: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.5) Gecko/20050104 Firefox/1.0

Nerf pisze:Czy też sprawdzają one, na jaki typ MIME pozwala serwer


Tak dla pełnej jasności, to co ustawisz w Header ma wyższy priorytet nad tym co jest ustawione w configu serwera.
Strus
 
Posty: 301
Z nami od: 29 stycznia 2004, 18:03
Lokalizacja: Bochnia


Wróć do Tworzenie stron WWW

Kto jest online

Zarejestrowani użytkownicy: Google [Bot]

cron
Przejdź do powiązanej strony

Nawigacja:

Stopka: