我试图弄清楚如何从 facebook 页面获取页面名称,虽然我已经知道如何从http://www.facebook.com/pagename
版本中获取它,但我无法弄清楚如何测试并从看起来更长的版本中获取它像这样http://www.facebook.com/pages/pagename/433425324544
。如何测试以查看路径是否以开头,/pages
以及如何使用一个函数从中提取页面名称。这是我用来以标准形式获取页面名称的方法。
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
为什么简短版本缺少最后一个字母?