2011-11-10 6 views
0

동적 텍스트 문자열에서 마지막 부분을 가져와야합니다. 예를 들면 :동적 텍스트의 마지막 부분을 가져 오는 중입니까?

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

여기에 내가 약 preg_match 생각되었으며, 9051284874 부분을 취득해야합니다.

preg_match("@^(?:https://www.facebook.com/pages/OMG/)?([^/]+)@i", $results, $at);과 같거나 $results은 동적 문자열이지만 OMG 부분은 동적이기 때문에 작동하지 않습니다.

기본적으로 내가해야 할 일은 마지막 슬래시 (/) 이후에 부분을 가져 오는 것입니다.

답변

2

당신은 (정규 표현식없이 )이 간단한 라인을 사용할 수 있습니다 :이 줄을 보장하기 위해

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

또는 더 나은 것 문자가 '/'문자열에없는 경우 실패합니다 :

다음
if (($pos = strrpos($url, '/')) !== FALSE) 
    $lastPart = substr($url, $pos + 1); 
+0

그것은 작동합니다, 감사합니다! – Ricardo

1

후행 부분은 항상 숫자 인 경우,

if (preg_match('/(\d+)$/', $url, $matches)) { 
    echo $matches[1]; 
} 
1

이 시도 할 수 있습니다 :

<?php 
$url = "https://www.facebook.com/pages/OMG/9051284874"; 
$pieces = explode("/", $url); 
$last = $pieces[count($pieces) - 1]; 
?> 
0

먼저 당신이 parse_url()과 URL을 분석해야한다. 그런 다음 explode($parsedUrl['path'])

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

또는 정규 표현식 사용 : 이것은 포함하는 연관 배열을 반환합니다

preg_match('`/([^/]+)/[^/]*$`', $parsedUrl['path'], $paths); 
관련 문제