Moskus Skrevet 8. juni 2011 Skrevet 8. juni 2011 (Kort fortalt jobber jeg med å flytte min side fra Joomla 1.0 til Wordpress, men {mosimage} tagger var ikke like enkelt...) Jeg har altså en streng som typisk kan se slik ut: Her er et fint bilde: {mosimage} og her er et annet bilde: {mosimage} Tilhørende til tekststrengen finnes en liste over bilde, her altså to bilder som feks. pictures/image1.jpg pictures/other_image.jpg Kort fortalt vil jeg erstatte {mosimage} med en <img> tag i "ekte html", og trenger da en "dynamisk erstattning". Finn et element og erstatt det med neste fra lista. Da vil jeg sitte igjen med: Her er et fint bilde: <img src="pictures/image1.jpg"> og her er et annet bilde: <img src="pictures/other_image.jpg"> Noen som har noen gode tips?
Igniztion Skrevet 8. juni 2011 Skrevet 8. juni 2011 Er ikke både Joomla og Wordpress PHP, ergo så hører ikke dette hjemme i .NET-programmering? Jeg har en løsning i C#, men den hjelper deg nok lite
Moskus Skrevet 8. juni 2011 Forfatter Skrevet 8. juni 2011 (endret) Nei, det fungerer utmerket! Takker og bukekr! Jeg herjer på i VB.net... Jeg kan ikke PHP eller MySQL, så det jeg har gjort nå på mitt amatørmessige vis er å eksportere tabellen. Så er planen å gjøre endringene mine og importere igjen før jeg overfører fra Joomla til Wordpress (overføringen er klargjort og testet). EDIT: Mulig jeg har fått det til... Dim images() As String = {} If text_images IsNot Nothing Then images = text_images.Split(ControlChars.Lf) If images.Count > 0 Then Dim image_count As Integer = 0 Dim cont As Boolean = True Do While cont Dim i_start As Integer = text_all.IndexOf("{mosimage}") If i_start < 0 Then Exit Do text_all = text_all.Remove(i_start, 10) If image_count <= images.Count - 1 Then text_all = text_all.Insert(i_start, "<img src=""" & images(image_count) & """>") Else cont = False End If image_count += 1 Loop End If ... men jeg er veldig interessert i hvordan det burde ha vært løst. Endret 8. juni 2011 av Moskus
MailMan13 Skrevet 8. juni 2011 Skrevet 8. juni 2011 (endret) Koden du har kan ihvertfall gjøres ryddigere: Dim images = text_images.Split(ControlChars.Lf) _ .Select(Function(x) String.Format("<img src=""{0}"" />", x)) For Each img In images Dim pos = text_all.IndexOf("{mosimage}") If pos > 0 Then text_all = text_all.Substring(0, pos) + img + text_all.Substring(pos + 10) End If Next Evt. med regex: Dim images = text_images.Split(ControlChars.Lf) _ .Select(Function(x) String.Format("<img src=""{0}"" />", x)) Dim ex = New Regex("\{mosimage\}") For Each img In images text_all = ex.Replace(text_all, img, 1) Next Endret 8. juni 2011 av MailMan13 1
GeirGrusom Skrevet 9. juni 2011 Skrevet 9. juni 2011 (endret) Dim image_list = images.Select( Function(x) "<img src=""{0}""></img>") Dim index As Integer = 0; text_all = Regex.Replace(text_all, "\{mosimage\}", Function(e) image_list(index += 1)); Funker vel også Regex er utrolig kjekt. Endret 9. juni 2011 av GeirGrusom 1
Moskus Skrevet 9. juni 2011 Forfatter Skrevet 9. juni 2011 Koden du har kan ihvertfall gjøres ryddigere: Dim images = text_images.Split(ControlChars.Lf) _ .Select(Function(x) String.Format("<img src=""{0}"" />", x)) For Each img In images Dim pos = text_all.IndexOf("{mosimage}") If pos > 0 Then text_all = text_all.Substring(0, pos) + img + text_all.Substring(pos + 10) End If Next Evt. med regex: Dim images = text_images.Split(ControlChars.Lf) _ .Select(Function(x) String.Format("<img src=""{0}"" />", x)) Dim ex = New Regex("\{mosimage\}") For Each img In images text_all = ex.Replace(text_all, img, 1) Next Dim image_list = images.Select( Function(x) "<img src=""{0}""></img>") Dim index As Integer = 0; text_all = Regex.Replace(text_all, "\{mosimage\}", Function(e) image_list(index += 1)); Funker vel også Regex er utrolig kjekt. Takk til begge! Da lærte jeg noe nytt og veldig nyttig! For å bruke et meget norsk uttrykk: Sweet!
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå