Php 添加+;1到从另一个站点获取的字符串

Php 添加+;1到从另一个站点获取的字符串,php,replace,preg-replace,Php,Replace,Preg Replace,我有一个从网站上得到的字符串 字符串的一部分是“X2”,我想将+1添加到2 我得到的整个字符串是: 20120815_00_X2 我要添加的是“X2”+1,直到“20120815\u 00\u X13”您可以执行以下操作: $string = '20120815_00_X2'; $concat = substr($string, 0, -1); $num = (integer) substr($string, -1); $incremented = $concat . ($num + 1)

我有一个从网站上得到的字符串

字符串的一部分是“X2”,我想将+1添加到2

我得到的整个字符串是:

20120815_00_X2
我要添加的是“X2”+1,直到“20120815\u 00\u X13”

您可以执行以下操作:

$string = '20120815_00_X2';

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

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

echo $incremented;
有关substr()的更多信息,请参见=>

您可以执行以下操作:

$string = '20120815_00_X2';

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

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

echo $incremented;

有关substr()的更多信息,请参见=>

如果要在字符串末尾找到数字并捕获它,请测试最大值
12
,如果是这种情况,请添加一个,这样您的模式将类似于:

/(\d+)$/    // get all digits at the end
以及整个表达:

$new = preg_replace('/(\d+)$/e', "($1 < 13) ? ($1 + 1) : $1", $original);
$new=preg_replace('/(\d+)$/e',“($1<13)?($1+1):$1',$original);
我使用了
e
修饰符,以便替换表达式将作为php代码计算


请参阅。

中的工作示例。如果要在字符串末尾找到数字并捕获它,请测试最大值
12
,如果是这种情况,请添加一个,这样您的模式将类似于:

/(\d+)$/    // get all digits at the end
以及整个表达:

$new = preg_replace('/(\d+)$/e', "($1 < 13) ? ($1 + 1) : $1", $original);
$new=preg_replace('/(\d+)$/e',“($1<13)?($1+1):$1',$original);
我使用了
e
修饰符,以便替换表达式将作为php代码计算

请参见。

中的工作示例此解决方案有效(无论X后面的数字是多少):

输出:

string(15) "20120815_00_X14"
此解决方案有效(无论X后面的数字是多少):

输出:

string(15) "20120815_00_X14"

你知道吗,你总是会在最后得到
X2
?为什么不用一个
str_replace
来增加它呢?在最后拆分字符串并用一段时间来增加数字。如下所示:@$string=ereg_replace(“'u T2',”$string);$i=2;虽然($i<13){echo$string.\u T.$i..gif.'
;$i++}@Bcl00注意,
ereg_replace
已被弃用,您可以在我的答案中的正则表达式的一行中完成。您知道最后总是会得到
X2
?为什么不用一个
str_replace
来增加它呢?在最后拆分字符串并用一段时间来增加数字。如下所示:@$string=ereg_replace(“'u T2',”$string);$i=2;虽然($i<13){echo$string.\u T'.$i..gif'.
;$i++}@Bcl00注意,
ereg\u replace
已被弃用,您可以使用我的答案中的正则表达式在一行中完成。如果它是
$string='20120815\u X10',该怎么办?然后他需要使用-2:|如果它是
$string='20120815_00_X10'怎么办?然后他需要使用-2:|