30. maj 2007 - 13:25Der er
13 kommentarer og 1 løsning
PHP i img-tag - forkert syntaks?
Jeg vil indsætte en src med php i en img tag i en webside test.php:
jeg har defineret $antpersgif = "../ikoner/".$antpers."pers.gif"; i headf-sektionen og i kroppen bruger jeg inde i img-taggen:
src="<?php echo $antpersgif; ?>"
og det fungerer på php-siden, men når jeg kører Tidy for at få html koden smukkere og kontrolleret, bliver udtrykket escapet:
src="%3C?php%20echo%20$antpersgif;%20?%3E"
(HTML Tidy Parsing ... line 60 column 54 - Warning: <img> escaping malformed URI reference)
så der må være en syntaksfejl i kodestumpen.
Jeg bruger samme slags php echo andre steder i siden, uden at det bliver escapet når jeg kører Tidy på den. Jeg har stillet lidt på Tidys indstillinger, men det skulle ikke være det, når øvrige udtryk går glat igennem.
Spørgsmålet er: Hvad er der galt i det her udtryk: <img src="<?php echo $antpersgif; ?>"> Ja, jeg kunne godt pille det ud - køre Tidy - og sætte det ind igen, men jeg foretrækker at finde ud af, hvad der er galt i udtrykket.
Note that Tidy doesn't understand the scripting language used within pseudo elements and attributes, and can easily get confused. Tidy may report missing attributes when these are hidden within preprocessor code.
I skriver, at Tidy er til html kode, og det er nok rigtigt. Men det virker fint på f. eks. javascript og i konfigurationen kan vælges wrap-php wrap-asp mm. Jeg kan sagtens få disse udtryk igennem Tidy i samme php side: <?php include("../inc/top.txt"); ?> <?php $var = urldecode($_SERVER['QUERY_STRING']);> <?php echo "$var"; ?>
derfor er jeg stadig ret sikker på, at det skal kunne lade sig gøre med <img src="<?php echo $antpersgif; ?>"> hvis bare det skrives korrekt.
En ting mangler du, det er alt attributen. Grunden til at det andet ikke virker for dig, er lige hvad dmdisco skriver. Tidy kan IKKE forstå php _i en html attribute_, dvs Tidy for intet når du gør følgende: <img src="<?php echo "noget" ?>"> da php ligger inde i attributen for img. Det samme vil ske for en hver andet htmlkode med php i attributen.
som jeg kan forstå det så køres tidy jo kun på html siden så det bedste resultat vil du jo nok få ved at køre den på dit output da du så også får det html du har med i dit php
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.