webForumDet fria alternativet

Deklarera Doctype m.m. får PHP att balla ur

PHP

9 svar · 399 visningar · startad av K@llen

Medlem sedan mars 20032 667 inlägg
Frågan#1

Tja,

På mina xhtml-sidor använder jag följande överst på sidorna:

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="sv" lang="sv">

Men rad 1 får PHP att balla ur. Varför?, antar att det har med <?xml... att göra som missförstås som <?php...

Kanske ska jag skriva på annat sätt eller hur löser jag detta?

Medlem sedan nov. 20041 740 inlägg
#2

Kan du inte köra

<? echo "<?xml version=\\"1.0\\" encoding=\\"ISO-8859-1\\"?>"; ?>
Medlem sedan mars 20032 667 inlägg
#3

Gislaved: Känns lite som en fullösning. ;)

Man kanske ska skippa första raden och bara köra:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" lang="sv" xml:lang="sv">
Medlem sedan aug. 2001153 inlägg
#4

Vet inte vad du kör för webserver och sådär. Men du kan bli striktare för php att man måste skriva <?php och inte bara <? för att "starta" phpmode.

Står säkert i inställningsfilen för php nånstans :)

Medlem sedan mars 20025 907 inlägg
#5

Kent.J skrev:

Står säkert i inställningsfilen för php nånstans :)

i php.ini

; Allow the <? tag. Otherwise, only <?php and <script> tags are recognized.
; NOTE: Using short tags should be avoided when developing applications or
; libraries that are meant for redistribution, or deployment on PHP
; servers which are not under your control, because short tags may not
; be supported on the target server. For portable, redistributable code,
; be sure not to use short tags.
short_open_tag = On

Sätt den till off istället så slipper du problemet

Medlem sedan mars 20032 667 inlägg
#6

short_open_tag är ju tyvärr något man inte kan sätta själv med ini_set() i de senare PHP-versionerna. :/

Medlem sedan mars 20025 907 inlägg
#7

Prova att skriva följande i .htaccess (om du har den möjligheten)

php_flag short_open_tag off

Annars kan du ju be webbhotellet sätta inställningen åt dig?

Medlem sedan mars 20032 667 inlägg
#8

Tack Peeer, funkar fin fint! :D

Medlem sedan mars 20025 907 inlägg
#9

Gött! :)

Medlem sedan juni 20054 inlägg
#10

Hade samma problem, nu funkar det men designen ryker totalt.

som XHTML (som det skall se ut):

och i PHP (så det inte skall se ut):

Det mörka med ränder är "headern" som ligger rätt i xhtml dokumentet men lägger sig bakom allt i php dokumentet.

266 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
132 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
132 ms — ändringar (db)