How to validate a LinkedIn public profile url

早过忘川 提交于 2019-12-09 16:36:09

问题


I am looking for a way to validate a link to make sure that it is pointing to a LinkedIn public profile page in PHP.

I have a website and I would like my users to be able to share their LinkedIn profile in their profile on my website.


回答1:


Try something like this where $username is the linked-in username. You also can set $profileurl directly to the link given and verify with str_pos that is starts with http://www.linkedin.com/in/

$profileurl = "http://www.linkedin.com/in/".$username;

$fp = curl_init($profileurl);
$response = curl_exec($fp);
$response_code = curl_getinfo($fp, CURLINFO_HTTP_CODE);
$validprofile = ($response_code == 200);

$validprofile will be a boolean indicating if the profile is valid.




回答2:


I've found a number of ways the profile url can look like:

http://uk.linkedin.com/pub/some-name/1/1b3/b45/
http://nl.linkedin.com/pub/other-name/11/223/544
http://www.linkedin.com/in/aname/
http://www.linkedin.com/in/another-name
http://linkedin.com/in/name
http://nl.linkedin.com/in/name
http://nl.linkedin.com/in/name/

I've used this regex to describe it:

^https?://((www|\w\w)\.)?linkedin.com/((in/[^/]+/?)|(pub/[^/]+/((\w|\d)+/?){3}))$

It is not strict-strict but it got me home.

edit
- Added https support




回答3:


Following expression will help you with all patterns:

((https?:\/\/)?((www|\w\w)\.)?linkedin\.com\/)((([\w]{2,3})?)|([^\/]+\/(([\w|\d-&#?=])+\/?){1,}))$

Demo

https://regex101.com/r/oT7iM2/5




回答4:


There a very nice examples on the developer API pages http://developer.linkedin.com/

This http://developer.linkedin.com/plugins/member-profile-plugin could be what your looking for.




回答5:


I use another regular expression more permisive:

^(http(s)?:\/\/)?([\w]+\.)?linkedin\.com\/(pub|in|profile)

It includes URLs without squeme and all samples from other answers. You can make any variation here http://regex101.com/r/vE8tV7




回答6:


This is tested regular expression that I use on my website. I fit all the variations that currently exist.

var linkedin=/(https?)?:?(\/\/)?(([w]{3}||\w\w)\.)?linkedin.com(\w+:{0,1}\w*@)?(\S+)(:([0-9])+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/;



回答7:


Use a regex to ensure that the link matches the form taken by linkedin public profiles.




回答8:


I've simply used the following regex:

http(s)?:\/\/([w]{3}\.)?linkedin\.com\/in\/([a-zA-Z0-9-]{5,30})\/?

According to the latest Linkedin documentation custom profile url can have 5-30 letters or numbers.

It works for the following list of url:

https://www.linkedin.com/in/your-profile-5-30-length/
https://linkedin.com/in/your-profile-5-30-length/
http://www.linkedin.com/in/your-profile-5-30-length/
http://linkedin.com/in/your-profile-5-30-length/


来源:https://stackoverflow.com/questions/8450403/how-to-validate-a-linkedin-public-profile-url

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!