Gå til innhold

indent på output


Anbefalte innlegg

Som regel på de fleste funksjoner o.l. man lager i php (sikkert andre språk også) så blir output ganske rotete lurer da på om en eller annen kanskje har noen ide om hvordan man kunne fixet dette, en grei måte er jo da å skille html totalt fra php og da altså skrive html akkurat som man vil ha det, men noen ganger blir det litt vanskelig for ikke å si helt umulig å skille det...

 

det jeg egentlig leter etter er vel da egentlig en måte å automatisk legge til f.eks ett linjeskift og ett tabulator hopp etter hver tag...

 

linjeskift er jo da enkelt nok, men det alene legger alt på kanten...

Lenke til kommentar
Videoannonse
Annonse

Hehe, en slags output beautifier? :D Vel, vet ikke om det egentlig er nødvendig jeg, kanskje lettere å "feilsøke" koden, men jeg pleier å feilsøke i kildekoden og ikke i output resultatet. Men det kunne kanskje vært kjekt å gjøre output pent i debug fasen for de som vil se etter feil i output, ellers vil jeg ikke lagt så mye vekt på det.

 

Men skulle man prøvd seg, så måtte man lagd en slags parser som lette etter start og slutt tag'er. Man må og gå rekursivt inni hver tag blokk for å indente innholdet av blokken et hakk mer enn moder blokken osv osv, tror det blir litt arbeid :)

 

Du burde definere hva som er root noder. F.eks <html> <head> <body> er noder jeg ville kalt root noder. Inni head ville <link> <meta> <style> <title> f.eks indent et hakk til høyre. Alle elementer som starter inni <body> vil da indente et hakk til høyre og. Har du en <div> inni <body> så er denne alt indentet 1 hakk, men skal du ha et element/tekst inni <div> igjen, så må dette indentes et hakk inni der igjen, derav rekursivt indenting eller hva man skal kalle det :D

 

Hvis du ikke vil at det skal komme noe tekst før eller etter f.eks <div> så må man vel slenge på linjeskift foran og bak hvis det finnes tekst foran eller bak på samme linje.

 

Du kan ta titt på preg_replace_callback, den kan jo være til god hjelp på dette. Da kan du f.eks "angripe" root tag'ene som <html> <head> og <body>. Du kan f.eks hente alt som er mellom <body>(.*)</body>, så må du finne alle tag'er inni der igjen som skal indentes, men igjen så må innholdet på de tag'ene igjen indentes.

 

Gosh, ble mye teori detta :scared: hehe, lykke til.

Lenke til kommentar

For bare noen år siden var alle kilde koder (html) perfekt opsatt.

På linje og rad, med spacing litt inn på linjer.

 

I dag er det "nesten" bare sider som er lagt med WYSIWYG programmer som FrontPage som har pene kildekoder. Noen untak finnes det sikkert, men det er ikke så mange som før!

 

Ta en kikk på f.eks. vg.no eller aftenposten.no - de kildekodene er ikke akuratt så fine.

 

De fleste bruker tiden til å forbedre scriptene(speed tests) og gjøre lay-outen mer brukervennlig - eller kartlegge brukerene sine, og tar seg ikke tid til å gjøre noe med kildekoden.

 

Mitt råd vil være å forbedre siden din isteden for å bruke tid på "ganske unyttige" funksjoner".

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...