2011-12-09 74 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/ 
相關問題