2011-12-09 75 views
8

我正在寻找一种验证链接的方法,以确保它指向PHP中的LinkedIn公共个人资料页面。如何验证LinkedIn公开个人资料网址

我有一个网站,我希望我的用户能够在我的网站上分享他们的个人资料。

+0

我创建的类为[验证LinkedIn URL](https://github.com/gchokeen/linkedinURLValidator)。 – Gowri

回答

4

尝试类似此处$username是链接的用户名。 您也可以直接设置$ profileurl给定与str_pos是验证链路与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开始将表明概况是否有效的一个布尔值。

+7

不要忘记'/在/用户名'是只有当用户选择了一个自定义url。否则它看起来更像'/ pub/fname -lname-etc/4/72/8a0' – codercake

0

使用正则表达式来确保链接与linkedin公共配置文件所采用的表单匹配。

5

我已经发现了多种方式的个人资料网址可以看起来像:

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/ 

我用这个正则表达式来形容它:

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

这是不严格的,严格的,但它让我回家了。

编辑
- 增加支持HTTPS

+0

我看到一个看起来像'https://www.linkedin.com/profile/view?id = 12345678'的表单现在。 –

+0

它的正则表达式为我工作。 –

2

这是测试,我在我的网站上使用正则表达式。我适合当前存在的所有变化。

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

如何使http/https/ftp协议成为可选的呢?如果某人刚刚进入www.linkedin.com/their-profile-name,没有http,该怎么办?除此之外,这工作。 –

+0

@NalinAgrawal你可以使用任何URL组合,你会得到正确的结果。我改变了一点代码,但模式是相同的。如果您了解正则表达式,您将使用或不使用http,https和www –

3

我用另一个正则表达式更permisive:

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

它包括但squeme URL和其他答案的所有样本。你可以在这里做http://regex101.com/r/vE8tV7

+0

进行工作。对于http://www.linkedin.com/pub/dir/+/semnani/us-49-greater-los -angeles-area –

3

任何变化表达之后会帮助你的所有模式:

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

演示

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

+0

感谢您加入Demo。 – Prasanna

0

我只是用下面的正则表达式:

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

根据最新的Linkedin文档自定义配置文件url可以有5-30个字母或数字。

它适用于网址名单如下:

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/ 
相关问题