Я пытаюсь написать функцию, чтобы просто получить идентификатор профиля пользователя или имя пользователя из Facebook. Они вводят там url в форму, тогда я пытаюсь выяснить, является ли это страницей профиля Facebook или другой страницей. Проблема в том, что если они входят на страницу приложения или на другую страницу с субдоменом, я бы проигнорировал этот запрос.проверить для subdomain в parse_url
Прямо сейчас у меня есть:
$author_url = http://facebook.com/profile?id=12345;
if(preg_match("/facebook/i",$author_url)){
$parse_author_url = (parse_url($author_url));
$parse_author_url_q = $parse_author_url['query'];
if(preg_match('/id[=]([0-9]*)/', $parse_author_url_q, $match)){
$fb_id = "/".$match[1];}
else{ $fb_id = $parse_author_url['path'];
}
$grav_url= "http://graph.facebook.com".$fb_id."/picture?type=square";
}
echo $gav_url;
Это работает, если $author_url
имеет «идентификатор =», а затем использовать его в качестве идентификатора профиля, если нет, то это должно быть имя пользователя или страницу, так что используйте это вместо этого. Мне нужно запустить еще одну проверку, что если URL-адрес содержит фейсбук, но является субдоменом, игнорируйте его. Я верю, что могу сделать это в первом preg_match preg_match("/facebook/i",$author_url)
Спасибо!
Humm ... Я попробовал 'if (strtolower ($ parse_author_url ['host']) ==" facebook.com ")', но он в Интернете понравился "facebook.com", а не "www.facebook.com" Я также попробовал preg_match, но он принял поддомены как действительные. Спасибо за помощь. – BandonRandon
Вы можете сделать опцию 'www.' как:' if (preg_match ("@ (?: Http: //)? (?: Www \.)? Facebook @ i", $ author_url)) {' – codaddict
к сожалению что позволяет «apps.facebook.com» – BandonRandon