$str = "some-string-that-might-end-in-a-number";
$strLen = strlen($str);
//check the last character of the string for number
if(intval($str[$strLen-1])>0)
{
//Now we replace the last number with the number+1
$newNumber = intval($str[$strLen-1]) +1;
$str = substr($str, 0, -1).$newNumber;
}
else
{
//Now we append a number to the end;
$str .= "-1";
}
Конечно, ограничение состоит в том, что он может получить только последнюю цифру .. что, если число было 10?
$str = "some-string-that-might-end-in-a-number";
$strLen = strlen($str);
$numberOfDigits = 0;
for($i=$strLen-1; $i>0; $i--)
{
if(intval($str[$i])==0)
{
$numberOfDigits = $strLen-($i-1);
break;
}
}
//Now lets do the digit modification
$newNumber = 0;
for($i=1; $i<=$numberOfDigits; $i++)
{
$newNumber += intval($str[$strLen-$i])*((10*$i)-10));
}
if($newNumber == 0)
{ $newNumber = 1; }
$newStr = "-{$newNumber}";
//Now lets add the new string to the old one
$str = substr($str, 0, ($numberOfDigits*-1)).$newNumber;