Add +1 to a string obtained from another site

僤鯓⒐⒋嵵緔 提交于 2020-02-07 05:39:09

问题


I have a string I get from a website.

A portion of the string is "X2" I want to add +1 to 2.

The entire string I get is:

20120815_00_X2

What I want is to add the "X2" +1 until "20120815_00_X13"


回答1:


You can do :

$string = '20120815_00_X2';

$concat = substr($string, 0, -1);
$num = (integer) substr($string, -1);

$incremented = $concat . ($num + 1);

echo $incremented;

For more informations about substr() see => documentation




回答2:


You want to find the number at the end of your string and capture it, test for a maximum value of 12 and add one if that's the case, so your pattern would look something like:

/(\d+)$/    // get all digits at the end

and the whole expression:

$new = preg_replace('/(\d+)$/e', "($1 < 13) ? ($1 + 1) : $1", $original);

I have used the e modifier so that the replacement expression will be evaluated as php code.

See the working example at CodePad.




回答3:


This solution works (no matter what the number after X is):

function myCustomAdd($string)
{

$original = $string;

$new = explode('_',$original);

$a = end($new);

$b = preg_replace("/[^0-9,.]/", "", $a);

$c = $b + 1;

$letters = preg_replace("/[^a-zA-Z,.]/", '', $a);

$d = $new[0].'_'.$new[1].'_'.$letters.$c;

return $d;

}

var_dump(myCustomAdd("20120815_00_X13"));

Output:

string(15) "20120815_00_X14"


来源:https://stackoverflow.com/questions/11971310/add-1-to-a-string-obtained-from-another-site

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!