Получение последней части динамического текста? - PullRequest
0 голосов
/ 11 ноября 2011

Мне нужно получить последнюю часть из динамических текстовых строк.например:

https://www.facebook.com/pages/OMG/9051284874

Здесь мне нужно получить часть 9051284874, я думал о preg_match.

Что-то вроде preg_match("@^(?:https://www.facebook.com/pages/OMG/)?([^/]+)@i", $results, $at);, в то время как $results является динамическимстрока, но часть OMG является динамической, поэтому она не будет работать.

По сути, мне нужно получить часть после последней косой черты (/), есть ли способ сделать это?

Ответы [ 4 ]

2 голосов
/ 11 ноября 2011

Вы можете использовать эту простую строку ( без регулярного выражения ):

$lastPart = substr($url, strrpos($url, '/') + 1);

или даже лучше, чтобы эта строка не потерпела неудачу, если символ '/' не находится встрока:

if ( ($pos = strrpos($url, '/') ) !== FALSE)
   $lastPart = substr($url, $pos + 1);
1 голос
/ 11 ноября 2011

Вы можете попробовать это:

<?php
$url  = "https://www.facebook.com/pages/OMG/9051284874";
$pieces = explode("/", $url);
$last = $pieces[count($pieces) - 1];
?>
1 голос
/ 11 ноября 2011

Если конечная часть всегда числовая, то

if (preg_match('/(\d+)$/', $url, $matches)) {
    echo $matches[1];
}
0 голосов
/ 11 ноября 2011

Сначала вы должны разобрать URL с parse_url().Это вернет ассоциативный массив, содержащий:

Array
(
[scheme] => http
[host] => www.facebook.com
[path] => /pages/OMG/9051284874
)

Затем вы можете explode($parsedUrl['path']) или использовать регулярное выражение:

preg_match('`/([^/]+)/[^/]*$`', $parsedUrl['path'], $paths);
...