2014-04-18 3 views
0

나는 photo.php? fbid =에서 시작 URL에서 페이스 북의 ID를 추출하는 방법에 대한이 웹 사이트를 검색 한하지만 난 긴 URL을 가지고 사진 ID를 얻는 방법을 알고추출 페이스 북의 사진이 부착 된 신분증은

예 1 : photo.php fbid = 10151987845617397

!preg_match("|^http(s)?://(www.)?facebook.com/photo.php(.*)?$|i", $url) || !$pid 

위의 코드는 페이스 북의 ID 10151987845617397을 가져 와서 변수 $ PID에 넣습니다 (전체 URL이 내가 생각는 preg_match를 사용하여 체크는 $ url 변수에 저장됩니다)? .

URL이 긴 경우 어떻게 코드를 변경할 수 있습니까? 여기에 URL이 있습니다 예 2 : https://www.facebook.com/nokia/photos/a.338008237396.161268.36922302396/10151987845617397/?type=1&theater 위의 URL에서 10151987845617397은 캡처하여 $ pid 변수에 넣어야하는 사진 ID입니다.

preg_match 문자열에서 변경해야 할 사항은 무엇입니까? ?!^HTTP (S) | URL에 대한

facebookcom/photo.php fbid = 10151987845617397 구문은는 preg_match ("즉

는 $ PID 변수에 출력으로 PHOTOID 10151987845617397를 얻으려면? : // (www.)? facebook.com/photo.php (. *)? $ | i ", $ url) || !의 URL facebookcom/노키아/사진/a.338008237396.161268.36922302396/10151987845617397에 대한

그래서 $의 PID는 /? 구문 것 어떤 종류 = 1 개 & 극장 는

감사

+0

"위 코드는 facebook id 10151987845617397을 가져 와서 변수 $ pid에 넣습니다." 그렇지 않다면'!'을 제거하면됩니다. –

+0

스크립트가 정상적으로 작동하고 있습니다. 필요한 것은 새로운 구문입니다. 새로운 preg_match 문을 작성하는 방법 또는 URL이 변경되면 질문에 제공된 preg_match 문을 변경하는 방법. – user3549869

답변

0

간단한 도와주세요 솔루션과 매우 읽기는 :

// $tmp[1] = www or nothing 
// $tmp[2] = "user" (i.e nokia) 
// $tmp[3] = album id? 
// $tmp[4] = photos 
// $tmp[5] = Long url as requested 
function extract_id_from_album_url($url) { 
    preg_match('/https?:\/\/(www.)?facebook\.com\/([a-zA-Z0-9_\- ]*)\/([a-zA-Z0-9_\- ]*)\/([a-zA-Z0-9_\.\-]*)\/([a-zA-Z0-9_\-]*)(\/\?type=1&theater\/)?/i', $url, $tmp); 

    return isset($tmp[5]) ? $tmp[5] : false; 
} 

슬래시을 보장하는 데 필요한 : 일치시킬 것을 주위에 ()를 사용, 정규식으로 전체 문자열을 사용하여 .은 리터럴 (정규식 구문이 아닙니다)으로 간주됩니다. 선택적 URL을 허용하는 물음표. 더 많은 정규식 구문을 사용하면 일치하는 "쿼리"를 훨씬 짧고 확장 가능하게 만들 수 있지만 읽는 것이 더 어려워집니다.

+0

나는 프로그래머가 아니기 때문에 이해하지 못할 수도 있습니다. 그러나 노키아의 URL은 샘플 URL 일뿐입니다. 실제 URL은 사용자가 게시합니다. 최초의 URL photo.php에서 처럼 (*.) $ |? 난 ", $ URL이 사용자가 다른 긴 있는 URL을두고있는 경우 URL이 이 부분이 변경 될 수 있습니다 $의 URL에서오고있다? 정확하게 설명하지 않는 경우 조사하십시오 감사합니다 – user3549869

+0

실례지만 비 프로그래머에게 설명하기는 어렵지만 도움이되기를 바랍니다. 이제 사용자는 거의 모든 URL을 제공 할 수 있으며 정규 표현식은 일치하는 "그룹" . 'http : // facebook.com/user3549869/movies'는 "사진"앨범을 찾아야하므로 작동하지 않습니다. 원하는 경우'()'그룹 매칭을 추가로 사용할 수 있습니다. – Tessmore

+0

답장을 보내 주셔서 감사합니다. 저는 하드 코어 프로그래머가 아니지만 조금은 코드를 이해할 수 있고 제가 만들 수 있습니다. 약간의 인터넷 검색으로 내 필요에 맞게 변경됩니다. 사용자가 항상 사진 URL을 제공 할 것이라고 말하고 싶습니다.내가 사용하는 스크립트는 페이스 북으로 시작하는 URL로 작업하기 위해 하드 코드되어 있습니다. com/photo.php? fbid = 10151987845617397 그리고 나는 페이스 북이 이제 긴 하나 인 사진 URL에 사용하는 URL을 사용자가 제공해야한다고 원합니다. 가능한 경우 회신 해주십시오. 원하는 경우 전체 스크립트/facebook PHP 파일을 볼 수 있습니다. 도와 주셔서 감사합니다 – user3549869

관련 문제