webForumDet fria alternativet

Addera nummer med inledande nollor

PHPur PHP

3 svar · 361 visningar · startad av TheMagnus

Medlem sedan juli 2006461 inlägg
Frågan#1

Oj, lite kryptisk rubrik kanske, men jag ska försöka förklara lite bättre. :)

Jag har en sträng som kan innehålla alla möjliga tecken, men avslutas alltid med ett nummer. Detta nummer plockar jag ut med reguljära uttryck:

<?php
$string = 'hejsansa001234';
$num = preg_match("/([0-9]*)$/", $string, $number);
?>

Nu vill jag ta detta nummer och addera med ett. Problemet är att när jag adderar så försvinner de inledande nollorna så klart. Men jag vill alltså ha kvar dessa efter additionen. Hjälp? :)

Medlem sedan maj 2005562 inlägg
#2
$number = sprintf("%06d", ++$number);
Medlem sedan juli 2006461 inlägg
#3

Tack sl0k! :bire
Glömde iofs att nämna att antalet nuffror kan vara olika till antalet, men jag löste det med en strlen på $number.

Medlem sedan aug. 20039 340 inlägg
#4

Lite sent nu, men denna kod funkar också:

$string = 'hejsansa001234';

if(!preg_match("/([0]*)([1-9][0-9]*)$/", $string, $number)){
	die('Matchar ej!');
}

if (preg_match("/^9+$/", $number[2])){
	$fnumber=substr($number[1], 0, -1) . ++$number[2];
}else{
	$fnumber=$number[1] . ++$number[2];
}

echo ($fnumber);

Den översätter också t ex 00999 till 01000.

127 ms totalt · 3 externa anrop · v20260731065814-full.b746b907
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)