取是否有整数部分作为字符串变量的尾部 PHP
Take if there is an integer part as the tail of a string variable in PHP
如何提取字符串变量的整数部分(最后一个整数)到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
...
?>
我只需要在 $part
中的最后一个整数时从 $path
中获取 'node/'
之后的整数部分。
如果 $path
是:
,则不执行任何操作
- 'greenpage/12432/node',或
- '56372/page/2321',或
- 'node/56372/page'.
我不想通过冗长的代码,例如:
<?php
$arr = explode(":",$path);
$a= $arr[1];
$b= $arr[3];
$c= $arr[5];
...
...
?>
我在很多地方都要用到这个43562。
希望它可以用任何简单的 preg_
方法或复杂的正则表达式来实现。
等待最小LOC解决方案。
$string = "foo/bar/node/1234";
if(preg_match('/node\/([0-9]+)$/', $string, $match)) {
echo $match[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);
}
也可以只把字符串切碎。它有点快'n'dirty,但它有效:
$parts = explode('/', $path);
echo array_pop($parts);
如何提取字符串变量的整数部分(最后一个整数)到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
...
?>
我只需要在 $part
中的最后一个整数时从 $path
中获取 'node/'
之后的整数部分。
如果 $path
是:
- 'greenpage/12432/node',或
- '56372/page/2321',或
- 'node/56372/page'.
我不想通过冗长的代码,例如:
<?php
$arr = explode(":",$path);
$a= $arr[1];
$b= $arr[3];
$c= $arr[5];
...
...
?>
我在很多地方都要用到这个43562。
希望它可以用任何简单的 preg_
方法或复杂的正则表达式来实现。
等待最小LOC解决方案。
$string = "foo/bar/node/1234";
if(preg_match('/node\/([0-9]+)$/', $string, $match)) {
echo $match[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);
}
也可以只把字符串切碎。它有点快'n'dirty,但它有效:
$parts = explode('/', $path);
echo array_pop($parts);