Facebookページからページ名を取得する方法を見つけようとしていますが、http://www.facebook.com/pagename
バージョンから取得する方法はわかりましたが、見た目の長いバージョンからテストして取得する方法がわかりませんこのようにhttp://www.facebook.com/pages/pagename/433425324544
。パスがで始まるかどうかをテストするにはどうすればよいですか。また/pages
、1 つの関数を使用してすべてからページ名を抽出するにはどうすればよいですか。標準形式でページ名を取得するために使用するものは次のとおりです。
function get_facebook_username( $facebook_url ) {
$url = $facebook_url;
$result = preg_match("/(https|http)?:\/\/(www\.)?facebook\.com\/?([^\/]*)/", $url, $matches);
$fb_username = 'default value';
if($result == 1){
$fb_username = $matches[3];
} else {
return;
}
echo "$fb_username";
}
URLが短縮版にある場合、ユーザー名の最後の文字を切り取ることを除いて、これを行うためのより良い方法を見つけました。例えば。
//---short
$url = http://www.facebook.com/pagename
//---long
$url = http://www.facebook.com/pages/pagename/7532527927346
<?php
$url = $facebook_username;
$path = parse_url($url, PHP_URL_PATH);
$pathTrimmed = trim($path, 'pages/../0123456789');
echo $pathTrimmed;
?>
//---short
pagenam
//---long
pagename
短いバージョンで最後の文字が抜けているのはなぜですか?