2011-12-09 17 views
8

को सत्यापित करने के लिए कैसे करें यह सुनिश्चित करने के लिए कि यह PHP में LinkedIn सार्वजनिक प्रोफ़ाइल पृष्ठ पर इंगित कर रहा है, एक लिंक को सत्यापित करने का एक तरीका ढूंढ रहा हूं।LinkedIn सार्वजनिक प्रोफ़ाइल url

मैं एक वेबसाइट है और मैं अपने उपयोगकर्ताओं को अपनी वेबसाइट पर अपने प्रोफ़ाइल में अपने LinkedIn प्रोफ़ाइल साझा करने के लिए सक्षम होने के लिए करना चाहते हैं।

+0

मैं करने के लिए वर्ग [लिंक्डइन यूआरएल को मान्य] बनाया (https://github.com/gchokeen/linkedinURLValidator)। – Gowri

उत्तर

4

कोशिश कुछ। तुम भी दिया जाता है और str_pos है कि के साथ सत्यापित लिंक करने के लिए सीधे $ profileurl सेट कर सकते हैं 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

'/ in/username' को न भूलें केवल तभी होता है जब उपयोगकर्ता ने कस्टम यूआरएल चुना हो। अन्यथा यह '/ pub/fname-lname-etc/4/72/8a0' – codercake

0

उपयोग एक regex सुनिश्चित करना है कि लिंक प्रपत्र सार्वजनिक प्रोफाइल लिंक्डइन द्वारा उठाए गए मेल खाता है। इस जहां $username लिंक्ड में उपयोगकर्ता नाम है जैसे

5

मैं प्रोफ़ाइल url की तरह लग सकता है कई तरीकों से मिल गया है:

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/ 

मैं इस regex का उपयोग किया है यह वर्णन करने के लिए:

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

यह है नहीं सख्त-सख्त लेकिन यह मुझे घर मिला।

संपादित
- जोड़ा गया https

+0

जैसा दिखता है मैं एक ऐसा फॉर्म देख रहा हूं जो 'https: //www.linkedin.com/profile/view? Id = 12345678' जैसा दिखता है अभी व। –

+0

यह regex मेरे लिए काम किया। –

2

यह रेगुलर एक्सप्रेशन मैं अपनी वेबसाइट पर का उपयोग परीक्षण किया जाता है समर्थन करते हैं। मैं वर्तमान में मौजूद सभी भिन्नताओं को फिट करता हूं।

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

यह squeme बिना यूआरएल और अन्य उत्तर से सभी नमूनों में शामिल हैं:

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

आप इसमें http/https/ftp प्रोटोकॉल वैकल्पिक कैसे बना सकते हैं? क्या होगा अगर कोई http के बिना www.linkedin.com/their-profile-name में प्रवेश करता है। इसके अलावा यह काम करता है। –

+0

@NalinAgrawal आप किसी भी यूआरएल संयोजन का उपयोग कर सकते हैं और आपको सही परिणाम मिल जाएगा। मैं थोड़ा कोड बदलता हूं लेकिन पैटर्न वही है। यदि आप रेगेक्स को समझते हैं, तो आप http, https और www –

3

मैं एक नियमित अभिव्यक्ति अधिक permisive का उपयोग करें। आप अभिव्यक्ति के बाद सभी पैटर्न के साथ तुम्हारी मदद करेगा किसी भी बदलाव यहाँ 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

डेमो जोड़ने के लिए धन्यवाद। – Prasanna

0

मैं बस निम्नलिखित regex उपयोग किया है:

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

नवीनतम लिंक्डइन दस्तावेज के अनुसार कस्टम प्रोफाइल यूआरएल में 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/ 
संबंधित मुद्दे