2012-08-29 8 views
5

मैंने तारों और int के साथ परीक्षण किया है, जिसे मैं कल्पना कर सकता हूं, जब तक यह http: // से शुरू होता है, यह FILTER_VALIDATE_URL का उपयोग करके एक मान्य यूआरएल होगा। तो, हमें FILTER_VALIDATE_URL क्यों चाहिए? जब भी हम इसे वैध बनाना चाहते हैं, तो इनपुट पर http: // क्यों न जोड़ें?http: // से शुरू कुछ भी FILTER_VALIDATE_URL द्वारा मान्य है?

var_dump(filter_var ('http://example',FILTER_VALIDATE_URL)); 
+0

हमें दिखाएं कि आपने क्या परीक्षण किया और कैसे। –

+0

http: // 20, http: // उदाहरण आज़माएं, वे मान्य हैं – Jenny

+0

आरएच कोड जो आप परीक्षण करने के लिए उपयोग करते थे? –

उत्तर

10

खैर तकनीकी रूप से, किसी भी यूआरआई (जैसे http://) कि के बाद एक योजना के साथ शुरू होता है और होता है वैध यूआरआई वर्ण मान्य प्रति सरकारी यूआरआई विनिर्देश के रूप में RFC 3986 में है:

प्रत्येक यूआरआई शुरू होता है धारा 3.1 में परिभाषित एक योजना के नाम के साथ, जो उस योजना के भीतर पहचानकर्ताओं को निर्दिष्ट करने के लिए एक विनिर्देश को संदर्भित करता है। इस प्रकार, यूआरआई सिंटैक्स एक संघीय और एक्स्टेंसिबल नामकरण प्रणाली है जिसमें प्रत्येक योजना का विनिर्देश उस योजना का उपयोग कर पहचानकर्ताओं के सिंटैक्स और अर्थशास्त्र को और प्रतिबंधित कर सकता है।

तो आपको मिलने वाली वापसी के बारे में कुछ भी अजीब बात नहीं है - यही होने वाला है। ध्वज के साथ आपको filter_var का उपयोग क्यों करना चाहिए ... यह हर संभव यूआरएल योजना के लिए निम्नलिखित की तरह कुछ करने से अधिक अर्थपूर्ण रूप से उचित है, क्या आप सहमत नहीं होंगे?

if (strpos($url, 'http://') === 0 
    || strpos($url, 'ftp://') === 0 
    || strpos($url, 'telnet://') === 0 
) { 
    // it's a valid URL! 
} 
+0

में पोस्ट करता हूं तो http खो जाता है। मुझे उम्मीद है कि फ़िल्टर को मान्य करने के लिए मान्य होगा यदि एक यूआरएल में वैध डोमेन शामिल है या नहीं। तो, मेरी धारणा गलत है। – Jenny

+1

@ जेनी यदि आप फ़िल्टर कॉल करने के बाद जो खोज रहे हैं, तो बस लौटाए गए मान को ['parse_url'] (http://us.php.net/manual/en/function.parse-url पर पास करें। PHP) और आप यूआरआई के घटक भागों को सूचीबद्ध करने वाली एक अच्छी सहयोगी सरणी प्राप्त कर सकते हैं। – rdlowrey

+0

धन्यवाद, मैं कोशिश करूँगा। – Jenny

संबंधित मुद्दे