如果在PHP中有一个整数部分作为字符串变量的尾部

时间:2015-01-02 04:52:11

标签: php string integer string-conversion

如何将字符串变量的整数部分(最后一个整数)提取到PHP中的另一个整数变量。

以下是我的代码的当前状态:

<?php
 $path = current_path(); // eg. loading 'node/43562' to $path
 $pos = strpos($path, 'node/');
 if($pos>-1)die(print $pos); // sometimes $pos can be 0, may be 5 or even 26..like so
 ...
?>

我所需要的只是在'node/' $path之后才得到整数部分,只有整数是$part中的最后一个。

如果$path

,则不执行任何操作。

  • 'greenpage / 12432 / node'
  • '56372 / page / 2321'
  • '节点/ 56372 /页'

我不想经历冗长的代码,如:

<?php
 $arr = explode(":",$path);
 $a= $arr[1];
 $b= $arr[3];
 $c= $arr[5];
 ...
 ...
?>

我必须在很多地方使用 43562 。 希望它可以使用任何简单的preg_方法或复杂的正则表达式来实现。

等待最小的LOC解决方案。

2 个答案:

答案 0 :(得分:1)

$string = "foo/bar/node/1234";

if(preg_match('/node\/([0-9]+)$/', $string, $match)) {

        echo $match[1];
}

答案 1 :(得分:1)

你可以通过各种方式获得这个数字。

这是一个简单的正则表达式:

preg_match('/\d+$/', $path, $match);
var_dump($match);

如果检查前缀是否也很重要,那么:

preg_match('/(?<=node\/)\d+$/', $path, $match);
var_dump($match);

您还可以使用strrpos()substr()

$slash = strrpos($path, '/');
if ($slash !== false) {
    echo substr($path, $slash + 1);
}

也可以将字符串切断。这有点快,很脏,但它有效:

$parts = explode('/', $path);
echo array_pop($parts);