Как извлечь целочисленную часть (последнее целое число) строковой переменной в другую целочисленную переменную в 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
является:
Я не хочу проходить длинные коды, такие как:
<?php
$arr = explode(":",$path);
$a= $arr[1];
$b= $arr[3];
$c= $arr[5];
...
...
?>
Я должен использовать это 43562 во многих местах.
Надеюсь, что это может быть реализовано с помощью любого простого preg_
методы или сложное регулярное выражение.
В ожидании минимального решения LOC.
Вы можете получить номер множеством способов.
Вот простое регулярное выражение:
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);
$string = "foo/bar/node/1234";
if(preg_match('/node\/([0-9]+)$/', $string, $match)) {
echo $match[1];
}