Avatar billede steenolsen1 Nybegynder
05. december 2005 - 15:15 Der er 10 kommentarer og
1 løsning

Replace - linieindrykning

Hej,

jeg er ved at arbejde på et CMS, og ønsker at lave en replacefunktion, der resulterer i, at angivelsen #pil omskrives/replaces af en grafikfil med en pil. Det er ikke så svært og det har jeg styr på.

Udfordringen er, at jeg bruger #pil i forbindelse med en form for punktopstilling, men at jeg i dag ikke får indrykket på linie 2, så det står pænt omstillet som ved en punktliste <ul><li>aksdfjaædsf</li></ul> Hvordan kringler jeg lige den?

Det skulle gerne resultere i:
#pil klæasf jaæsdf jæ alsdjfæ kljasdæfjlask fæ
    kalsfjdælajsdflkjasdælf
    kalsjdæklasfasdf
#pil klasdjfælajsdfælkjasdælfj
    klajsdfælkjasdf

og IKKE

#pil kasfæjasdælfæljasdfæ j asldæfklæ ajslflæjasd fkad
læaj flækj askljdlæja sdælkjadf
Avatar billede jackass- Nybegynder
05. december 2005 - 15:41 #1
Din grafikfil pil.gif er X gange Y pixels.. Lav et tilsvarende _blankt_ billede som du sætter ind foran "underteksterne". På den måde vil de blive rykket ind.

Eks 2: din #pil .gif er billede med pil nedad, og på underteksterne indsætter du: #pil_blank #pil_hoejre $tekst.

Du kan naturligvis også gøre det med &nbsp;&nbsp;&nbsp; eller lignende.

Der er muligheder nok :)
Avatar billede steenolsen1 Nybegynder
05. december 2005 - 16:10 #2
Tak for inputtet, men så har jeg ikke formuleret det klart nok :-)

Problemet er ikke at lave et indryk, når jeg ved, at det kommer, men derimod, at tage højde for at det kun er der nogle gange.

Hvis en sætning er for lang til at stå på en linie, vil den selvfølgelig gå videre til linie 2, og det er i DET tilfælde, at jeg skal have teksten i linie to til at flytte ind, så det står lige under teksten i linie 1.

Lad os sige, at pilen er 15 pixel bred, og så skal der være et mellemrum, &nbsp;, så skal linie to rykkes lige så langt ind, altså 15 pixel og &nbsp; Det samme skal linie 3, 4, 5 eller hvor mange der nu er. Er du med?
Avatar billede jackass- Nybegynder
05. december 2005 - 16:18 #3
Jeps tror jeg.. men så må du jo finde en måde du vil dele linie-længden op på og så smidt tekst-stykkerne i et array og så loope igennem arrayet og udskrive dem ala:

#pil;&nbsp;$array[0]
#blank.gif;&nbsp;$array[1]
#blank.gif;&nbsp;$array[2]
#blank.gif;&nbsp;$array[3]
osv...

Kan du se hvad jeg mener? :)
Avatar billede steenolsen1 Nybegynder
05. december 2005 - 17:37 #4
Eksempelvis noget a la "Find ud af hvornår der er tastet #pil, og hvornår der er tastet #pilslut, tæl antallet af tegn imellem, og split det op i brudstykker af 100 tegn (længden af liniens antal tegn), og udskriv pilgrafik.gif&nbsp;linie[0]<br />blank.gif&nbsp;linie[1]...."

Det kan jeg godt se det smarte i, men skal lige have grejet, hvordan man gør det... Smart nok ellers.
Avatar billede Slettet bruger
05. december 2005 - 18:30 #5
Er der en grund til at du ikke bruger en punkliste, hvis det er sådan en, du laver?
Avatar billede elskermad.dk Nybegynder
05. december 2005 - 19:35 #6
så kan han da lige så godt smide det i en div?

<?

$streng = "gjdgnjdngjkdn sgjkn kjdsngjk dsfngkj ndfsjkgnjkdf<br>#pilfdnsajfkndskjfn asnfjkndsa jkfnjdks fnjkdsna kjfndskj fnkjdsn fjkdsnfjkndsk gvnvdfn vndfnvjkdnfv jkndsjkvnf djksnv jkdfnvjk nzdxjvn jkdfnvj kndfsvjk ndsfjkvndsjkfn jkvnfdxjkvn jkdfsnvj kcnxjkv njkxn zkj#pilslut fndsjfn dsjkn fkjdsn fjknvvdjksvnjkdsfnvjkcbnxjhzbvdcnv vjkdnjkvn jkdnjkfvn #pil fvndsjvn dfjksnvjkdsbvjkcndxjksvdsjkbn vjsnfvdn v#pilslut";

$streng = str_replace("#pil","<div style='padding-left:30px;background-image:url(pil.gif);background-repeat:norepeat'>",$streng);
$streng = str_replace("#pilslut","</div>",$streng);

echo $streng;

?>

eller har jeg misforstået?
Avatar billede elskermad.dk Nybegynder
05. december 2005 - 19:41 #7
<?

$streng = "gjdgnjdngjkdn sgjkn kjdsngjk dsfngkj ndfsjkgnjkdf<br>#pilfdnsajfkndskjfn asnfjkndsa jkfnjdks fnjkdsna kjfndskj fnkjdsn fjkdsnfjkndsk gvnvdfn vndfnvjkdnfv jkndsjkvnf djksnv jkdfnvjk nzdxjvn jkdfnvj kndfsvjk ndsfjkvndsjkfn jkvnfdxjkvn jkdfsnvj kcnxjkv njkxn zkj#pilslut fndsjfn dsjkn fkjdsn fjknvvdjksvnjkdsfnvjkcbnxjhzbvdcnv vjkdnjkvn jkdnjkfvn #pil fvndsjvn dfjksnvjkdsbvjkcndxjksvdsjkbn vjsnfvdn v#pilslutfjdnj kdsngjk ndfgjk ndfjkgn jkdfng jkdfn sgkdfnsgjk nfdsk nvdfjksnv jkndsfjkv ndfjks vnjkdfn vjkdfsnvjk ndsfjk vnjkdfsn vjkdsfn vjkdfnvj fndsvk nkdsfjvn dsfjknv jkdsfn vjkdfnj vknkdsfj";

$streng = str_replace("#pilslut","</div>",$streng);
$streng = str_replace("#pil","<div style='padding-left:30px;background-image:url(pil.gif);background-repeat:norepeat'>",$streng);

echo $streng;

?>

virker hos mig hvis du laver noget grafik :)
Avatar billede steenolsen1 Nybegynder
06. december 2005 - 11:34 #8
Det virker det skidt :-) Tak for hjælpen
Avatar billede elskermad.dk Nybegynder
06. december 2005 - 11:45 #9
det var så lidt...
Avatar billede Slettet bruger
06. december 2005 - 16:19 #10
Når det nu er en punktliste, vil jeg stadig foreslå at bruge den kode til det, som er beregnet dertil, nemlig en <ul> med <li>-er i.

<ul class=pil>
<li>faædn agtanth wrthølwknø</li>
</ul>

og den dertilhørende CSS:

ul.pil li {
  margin:0;
  padding-left:30px;
  background-image:url(pil.gif);
  background-repeat:norepeat;
}
Avatar billede steenolsen1 Nybegynder
06. december 2005 - 16:24 #11
Det havde jeg først forsøgt, at få til at spille uden held, og da det andet så virkede, nuppede jeg det - tak for tippet ellers. Det er noteret til en anden gang :-)
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