17. maj 2003 - 18:57Der er
21 kommentarer og 1 løsning
indsæt mellemrum efter hvert andet tegn
Hej
jeg har en tekststreng, hvor jeg skal have indsat et mellemrum efter hvert andet bogstav.
Eksempel:
"qwertyuiop" => "qw er ty ui op"
jeg overvejer at tælle længden af strengen, lave en for-loop med substr(x, 2) og hver gang tilføje det, samt et mellemrum, til en ny streng. Er det måden at gøre det på, eller er der en funktion der kan gøre det på en nemmere måde?
Ja det må du da. Til at gøre noget hex-data nemmere at læse. Nu ser det sådan her ud: function opbryd($datastreng) { for($i=0; $i<strlen($datastreng); $i++){ $new_datastreng .= substr($datastreng, $i, 2)." "; $i++; } }
Det virker fint. Men jeg trode bare at der måske var en nemmere måde. Man er jo altid på udkig efter nemmere måder at gøre tingene på ;)
Tak for svaret. Jeg tænkte nok at der var en anden måde at gøre det på :) Jeg vil lige teste hvad der er mest effektivt senere. Strengen kan nemlig godt være ret lang, så det er med at få den mindst krævende funktion.
Ja det har du egentlig ret i. Men det er der desværre ikke noget at gøre ved nu...
Jeg tester det først senere i aften/nat, for jeg er rykket videre i projektet og bøvler med andre problemer nu. Men jeg skal nok skrive hvad jeg kommer frem til :)
Prøv hvad der er mest effektivt. Jeg garantere ikke noget... Jeg foretrækker blot regulære udtryk frem for while-løkker, da jeg synes de er nemmere at forstå, men jeg er altså også skruet lidt sjovt sammen oven i hovedet.
postndk: jeg kender ikke nogen "god" introduktion til regulære udtryk. Men du kan jo starte på php.net/preg_replace
Jeg tror i hvert fald at substr(preg_replace('/(..?)/','$1 ',$str), 0, -1); er hurtigere end preg_replace('/(..?)(?=.)/','$0 ',$str); da substr()'en skal udføres 1 gang. med den anden skal den udføre det hver gang. Men jeg lader det komme an på prøve.
og hey hvad er der galt med at være skruet lidt sjovt sammen i hovedet? Det er da et stort aktiv. Et anderledes syn på sagen er ofte vejen til bedre måder at gøre tingene på.
Det er udført på en windows xp maskine med apache 1.3.27 og php 4.3.1. Om resultatet er anderledes på et andet os eller andre versioner af serversoftware og phpversion ved jeg ikke...
Nej - det gør jeg ikke. Der er mange små artikler og ting på nettet (vink: google), og der er også skrevet en bog kun om det.
Synes godt om
Ny brugerNybegynder
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.