/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Substring
Fra : Michael


Dato : 31-07-06 21:20

Hej NG!

Jeg tumler pt. med et problem som reelt er ret simpelt og til hvilket der
findes et hav af løsninger.
Udfordringen ligger i at finde den mest elegante måde at løse opgaven på...

I bund og grund går det ud på at der i et textarea kan forekomme et antal
strenge lig: [smiley #235]
'[smiley #' og ']' delen vil altid være den samme men værdien imellem kan
være forskellig. Udfordringen går nu på at løbe strengen igennem og pille
alle disse værdier ud. Hver gang skal de erstattes af en streng som findes i
en db. Værdien efter # repræsenterer indexet på den pågældende streng.

Som sagt er opgaven ret ligetil og med mange løsninger men hvordan løses den
så elegang som muligt? Min umiddelbare indskydelse vil være et regulært
udtryk men jeg skal ærligt tilstå at jeg ikke er nogen super-haj på det
område - det kommer forhåbentligt engang

At opgaven skal løses i PHP er jo selvsagt

Gode forslag?

PFT
/Michael



 
 
Michael Zedeler (01-08-2006)
Kommentar
Fra : Michael Zedeler


Dato : 01-08-06 11:21

Michael wrote:
> I bund og grund går det ud på at der i et textarea kan forekomme et antal
> strenge lig: [smiley #235]
> '[smiley #' og ']' delen vil altid være den samme men værdien imellem kan
> være forskellig. Udfordringen går nu på at løbe strengen igennem og pille
> alle disse værdier ud. Hver gang skal de erstattes af en streng som findes i
> en db. Værdien efter # repræsenterer indexet på den pågældende streng.
>
> Som sagt er opgaven ret ligetil og med mange løsninger men hvordan løses den
> så elegang som muligt? Min umiddelbare indskydelse vil være et regulært
> udtryk men jeg skal ærligt tilstå at jeg ikke er nogen super-haj på det
> område - det kommer forhåbentligt engang

Du her helt ret. Det kan gøres med regulære udtryk.

Se

http://dk2.php.net/manual/en/function.ereg-replace.php

Mvh. Michael.
--
Which is more dangerous? TV guided missiles or TV guided families?
I am less likely to answer usenet postings by anonymous authors.
Visit my home page at http://michael.zedeler.dk/

Jesper Brunholm (01-08-2006)
Kommentar
Fra : Jesper Brunholm


Dato : 01-08-06 11:51

Michael skrev:
> Jeg tumler pt. med et problem som reelt er ret simpelt og til hvilket der
> findes et hav af løsninger.
> Udfordringen ligger i at finde den mest elegante måde at løse opgaven på...
>
> I bund og grund går det ud på at der i et textarea kan forekomme et antal
> strenge lig: [smiley #235]
> '[smiley #' og ']' delen vil altid være den samme men værdien imellem kan
> være forskellig.

Jeg ville trække alle mulige værdier og erstatninger ud i et array og
køre en strtr() <http://dk.php.net/strtr>

$sogOgErstat=array(
'[smiley #235]' => '<img ....>',
'[smiley #236]'=>'... osv',
);

$tekst = strtr($tekst, $sogOgErstat);

Det er lettere, og maskinkraftmæssigt "billigere" end en regex. Jeg
regner med at sogOgErstat genereres med en while ud fra det hentede
muligheds-sæt fra databasen.

Det ville under alle omstændigheder være absurd at kalde databasen hver
gang en erstatningsmulighed skulle hentes.

mvh

Jesper Brunhollm

phpartikler.dk (01-08-2006)
Kommentar
Fra : phpartikler.dk


Dato : 01-08-06 16:22

> Det er lettere, og maskinkraftmæssigt "billigere" end en regex.

Det er faktisk hurtigere at benytte sig af preg_match_callback() funktionen
hvis strengen af stor og ordene er mange. Det er dog ikke så meget at det
gør noget, så din løsning må være den "bedste"



Ukendt (01-08-2006)
Kommentar
Fra : Ukendt


Dato : 01-08-06 12:35

Hejsa!

Tak for jeres forslag Jeg tror at jeg vil prøve at lave begge løsninger
og så beslutte mig. Altid en fordel at kunne løse problemerne på mere end én
måde


"Michael" <ziggimanNOSPAM@hotmail.com> wrote in message
news:44ce65de$0$3478$ba624c82@nntp02.dk.telia.net...
> Hej NG!
>
> Jeg tumler pt. med et problem som reelt er ret simpelt og til hvilket der
> findes et hav af løsninger.
> Udfordringen ligger i at finde den mest elegante måde at løse opgaven
> på...
>
> I bund og grund går det ud på at der i et textarea kan forekomme et antal
> strenge lig: [smiley #235]
> '[smiley #' og ']' delen vil altid være den samme men værdien imellem kan
> være forskellig. Udfordringen går nu på at løbe strengen igennem og pille
> alle disse værdier ud. Hver gang skal de erstattes af en streng som findes
> i en db. Værdien efter # repræsenterer indexet på den pågældende streng.
>
> Som sagt er opgaven ret ligetil og med mange løsninger men hvordan løses
> den så elegang som muligt? Min umiddelbare indskydelse vil være et
> regulært udtryk men jeg skal ærligt tilstå at jeg ikke er nogen super-haj
> på det område - det kommer forhåbentligt engang
>
> At opgaven skal løses i PHP er jo selvsagt
>
> Gode forslag?
>
> PFT
> /Michael
>



Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408849
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste