Avatar billede perh Juniormester
30. maj 2007 - 13:25 Der 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.
Avatar billede dmdisco Nybegynder
30. maj 2007 - 13:38 #1
jeg er ikke helt sikker på at jeg forstår spørgsmålet (læs kan ikke se der er et)

men hvis problemet er at html tidy urlencoder dine php tags så fjern dem først og kør så tidy og så smid php tagsne ind igen
Avatar billede erikjacobsen Ekspert
30. maj 2007 - 13:56 #2
Og det ér problemet. Html-tidy kan kun rydde op i HTML-kode. Ikke PHP.
Avatar billede perh Juniormester
30. maj 2007 - 14:00 #3
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.
Avatar billede radion Nybegynder
30. maj 2007 - 14:07 #4
problemet er at den ikke genkender det som et html-tag, og laver det om til hex karaktererne...

tidy er en html validator, den tror at du kun giver den html og den forstår ikke at parse, eller udelade de dele der er php

skriv koden i notepad og lad den validere, ret fejlene, og bliv bedre og bedre til at huske at skrive korrekt html :)
Avatar billede dmdisco Nybegynder
30. maj 2007 - 14:09 #5
http://www.w3.org/People/Raggett/tidy/ står der faktisk hvad der er galt

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.
Avatar billede radion Nybegynder
30. maj 2007 - 14:11 #6
dmdisco: Hey! Det der er tæt nok på at være manualen, den læser vi ikke før der står røg op af serveren!
Avatar billede dmdisco Nybegynder
30. maj 2007 - 14:12 #7
hehe sandt :)
Avatar billede perh Juniormester
30. maj 2007 - 14:38 #8
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.
Avatar billede dkfire Nybegynder
30. maj 2007 - 14:55 #9
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.
Avatar billede perh Juniormester
30. maj 2007 - 16:23 #10
dkfire: du har ret. Jeg flyttede det hele ind i et php-statement, så virker det som jeg ville have det - at det kan komme hel igennem Tidy.

send et svar, så du kan få point.

Er der andre som vil have point ?
Avatar billede dmdisco Nybegynder
30. maj 2007 - 18:39 #11
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
Avatar billede dkfire Nybegynder
30. maj 2007 - 19:59 #12
Jeg synes du skulle give point til dimdisco, da det var ham som kom med svaret til dig
Avatar billede dmdisco Nybegynder
03. august 2007 - 10:20 #13
kommer lige med et svar så kan du selv afgøre det
Avatar billede perh Juniormester
03. august 2007 - 10:51 #14
Tak for hjælpen
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester