Avatar billede googolplex Novice
29. oktober 2003 - 13:11 Der er 20 kommentarer og
2 løsninger

Fjerne alle punktummer på nær det sidste

Jeg har en streng:

$string = '123.456.679.012.457';

Hvordan fjerner jeg nemmest alle punktummer (.) på nær det sidste ?

Den måde jeg ville bruge er bøvlet, håbede der var en fiks en :)
Avatar billede razor Nybegynder
29. oktober 2003 - 13:19 #1
$string = str_replace(".", "", $string).".";
Avatar billede razor Nybegynder
29. oktober 2003 - 13:22 #2
ups :)
Avatar billede exp Juniormester
29. oktober 2003 - 13:26 #3
$string = '123.456.679.012.457';
$string = split(".", $string);

$string_new = $string[0].$string[1].$string[2].$string[3].".".$string[0];

echo $string_new;
Avatar billede exp Juniormester
29. oktober 2003 - 13:27 #4
Hovsa - rettelse:

$string = '123.456.679.012.457';
$string = split(".", $string);

$string_new = $string[0].$string[1].$string[2].$string[3].".".$string[4];

echo $string_new;
Avatar billede detox Nybegynder
29. oktober 2003 - 13:28 #5
Jeg tror du må have en lille funktion til at klare problemet. Fx:

function fjern($str) {
    $arr = explode(".",$str);
    $last = array_pop($arr);
    $new = implode("",$arr).".".$last;
    return $new;
}

$string = '123.456.679.012.457';
echo fjern($string);
Avatar billede googolplex Novice
29. oktober 2003 - 13:30 #6
detox: Jeg snupper din, den er mest fiks :)

Svar!
Avatar billede Slettet bruger
29. oktober 2003 - 13:31 #7
jeg synes da razors er den mest fikse og enkle...

:)
Avatar billede razor Nybegynder
29. oktober 2003 - 13:34 #8
<?php
$string = '123.456.679.012.457';

$tal = explode(".", $string);
foreach ($tal as $t) $out .= sprintf("%s%s", $t, (++$i == count($tal) - 1) ? "." : "");

print $out;
?>
Avatar billede razor Nybegynder
29. oktober 2003 - 13:35 #9
el_barto, nu skal du ikke være fræk - jeg var bare lidt for hurtig :/

Men nu har jeg lavet en ny!
Avatar billede detox Nybegynder
29. oktober 2003 - 13:36 #10
googolplex -> Den er genanvendelig ;o)
Avatar billede dmcn Praktikant
29. oktober 2003 - 13:39 #11
razors er pænere... =)
Avatar billede detox Nybegynder
29. oktober 2003 - 13:41 #12
Jo, enig :-)
Avatar billede squashguy Nybegynder
29. oktober 2003 - 14:03 #13
endnu pænere..

$str = '123.456.679.012.457';
$nystr = str_replace(".", "", substr($str, 0, strlen($str)-4)).substr($str, strlen($str)-4);
Avatar billede erikjacobsen Ekspert
29. oktober 2003 - 14:10 #14
Hmm, hvorfor skal det være så bøvlet?

  $a='123.456.679.012.457';
  $b = preg_replace('/\.([^\.]*)(?=\.)/','$1',$a);
  print "$a $b\n";
Avatar billede erikjacobsen Ekspert
29. oktober 2003 - 14:29 #15
Eller med lidt færre tegn:
$b = preg_replace('/\.(.*?)(?=\.)/','$1',$a);
Avatar billede detox Nybegynder
29. oktober 2003 - 15:01 #16
erik -> REGEXP rykker!
Avatar billede googolplex Novice
29. oktober 2003 - 16:07 #17
erikjacobsen: hvad er $1 ?
Avatar billede erikjacobsen Ekspert
29. oktober 2003 - 17:38 #18
præcis 100 cent
Avatar billede googolplex Novice
29. oktober 2003 - 17:53 #19
:P
Avatar billede googolplex Novice
29. oktober 2003 - 17:54 #20
Fatter bare ikke den preg_replace() så...
Avatar billede erikjacobsen Ekspert
29. oktober 2003 - 18:29 #21
Nåååh, det $1 der står i det regulære udtryk...det kunne du jo bare have sagt...

$1 er indholdet af det den første parantes matcher: (.*?)
Avatar billede googolplex Novice
29. oktober 2003 - 18:35 #22
Ok, tak :)
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