2015-01-02 8 views
0

Как извлечь целочисленную часть (последнее целое число) строковой переменной в другую целочисленную переменную в 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 
... 
?> 

Все, что мне нужно, чтобы получить целую часть приходит после того, как 'node/' из $path только если целое число является последней вещью в $part.

ничего не делать, если $path является:

  • 'greenpage/12432/узел' или
  • '56372/страница/2321' или
  • «узел/56372/страница '.

Я не хочу, чтобы пройти через длинные коды, как:

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

Я должен использовать этот во многих местах. Надеюсь, он может быть реализован с помощью любых простых методов preg_ или сложного регулярного выражения.

Ожидание минимального решения LOC.

+0

http://www.writemycodeforme.com –

ответ

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); 
} 

Также можно просто нарезать строку. Это немного quick'n'dirty, но это работает:

$parts = explode('/', $path); 
echo array_pop($parts); 
1
$string = "foo/bar/node/1234"; 

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

     echo $match[1]; 
} 
+1

Вы имеете в виду '$ матч [1]', не так ли? – Barmar

+0

да, исправлено, спасибо – Kevin

 Смежные вопросы

  • Нет связанных вопросов^_^