Avatar billede learner Praktikant
01. juli 2006 - 12:54 Der er 8 kommentarer og
1 løsning

skær væk efter sjette gang et tegn dukker op

Hej, jeg vil gerne have en simpel måde at skære alt væk i en streng. Der skal skære væk efter sjette *-tegn
altså ex 25*455,26*800,27*750,25*455,26*800,27*750,25*455,26*800,27*750
bliver til
25*455,26*800,27*750,25*455,26*800,27*

hmm faktisk vil jeg osse gerne have det sidste *-tegn væk :o) hvis det os kan lade sig gøre i samme vending

så det blir:
25*455,26*800,27*750,25*455,26*800,27

tænkte om man kan bruge substr men jeg kan ik finde ud af det.

På forhånd tak :-)
Avatar billede zynzz Praktikant
01. juli 2006 - 13:09 #1
$tal = substr("$streng", 0, -1);

echo $tal;
Avatar billede zynzz Praktikant
01. juli 2006 - 13:11 #2
Til det andet skal du bruge explode();
Avatar billede learner Praktikant
01. juli 2006 - 15:07 #3
ok så noget lign
$ny_streng= implode(",", explode(",",$streng,4) );

så bliver :
25*455,26*800,27*750,25*455,26*800,27*750,25*455,26*800,27*750
til
25*455,26*800,27*750,25*455
korrekt?
Avatar billede learner Praktikant
01. juli 2006 - 15:08 #4
hmm næh vel?
http://dk.php.net/explode
Jeg er lidt i tvivl. det ser ud til at den sidste tager resten med, ik?
Avatar billede learner Praktikant
01. juli 2006 - 15:26 #5
jeg bruger den negative:
$ny_streng= implode(",", explode(",",$streng,-5) );

så bliver :
25*455,26*800,27*750,25*455,26*800,27*750,25*455,26*800,27*750
til
25*455,26*800,27*750,25*455
Avatar billede prog112 Nybegynder
01. juli 2006 - 16:06 #6
Jeg ville lige prøve php...


<?
$x="25*455,26*800,27*750,25*455,26*800,27*750,25*455,26*800,27*750";

$cut=6;
$count=0;
$i=0;
$stop=false;
$found=false;
while (!$stop){
  if (strcmp($x[$i],'*')==0) $count++;
  $i++;
  if ($count==$cut) {
    $stop=true;
    $found=true;
  }
 
  if ($i==strlen($x)) $stop=true;
}

if ($found) {
  $r = substr($x,0,$i-1);
  echo $r;


?>
Avatar billede spaff Nybegynder
03. juli 2006 - 11:52 #7
Nedenstående vil kun give dig indholdet af udtrykket til den 6. asterisk - uden at tilføje den i enden.

<?
$str = "25*455,26*800,27*750,25*455,26*800,27*750,25*455,26*800,27*750";
$str_parts = explode("*",$str);

for($i = 0; $i < 6; $i++)
  $new_str_parts[] = $str_parts[$i];

$new_str = implode("*",$new_str_parts);
?>
Avatar billede learner Praktikant
03. juli 2006 - 16:48 #8
tak :)
Avatar billede fangel Nybegynder
09. juli 2006 - 21:52 #9
Og for at markere -  så skal det lige kunne laves på en kortere måde...

<?php
$str = "25*455,26*800,27*750,25*455,26*800,27*750,25*455,26*800,27*750";
$new_str= implode('*', array_slide(explode('*', $str), 0, 6));
?>

-fangel
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