/ / जांचें कि क्या एक स्ट्रिंग URL [डुप्लिकेट] है - php, regex, url

जांचें कि कोई स्ट्रिंग एक यूआरएल है [डुप्लिकेट] - php, regex, url

मैंने बहुत सारे प्रश्न देखे लेकिन यह समझने में सक्षम नहीं था कि यह कैसे काम करता है जैसा कि मैं एक और अधिक सरल मामला चाहते हैं।

यदि हमारे पास पाठ है, तो वह जो भी है, मैं "यह जांचना पसंद करता हूं कि वह URL है या नहीं।

$text = "something.com"; //this is a url

if (!IsUrl($text)){
echo "No it is not url";
exit; // die well
}else{
echo "Yes it is url";
// my else codes goes
}

function IsUrl($url){
// ???
}

क्या जेएस अवरुद्ध है मामले में जावास्क्रिप्ट के साथ जांच करने के बजाय कोई अन्य तरीका है?

उत्तर:

उत्तर № 1 के लिए 15

http://www.php.net/manual/en/function.preg-match.php#93824

<?php
$regex = "((https?|ftp)://)?"; // SCHEME
$regex .= "([a-z0-9+!*(),;?&=$_.-]+(:[a-z0-9+!*(),;?&=$_.-]+)?@)?"; // User and Pass
$regex .= "([a-z0-9-.]*).([a-z]{2,3})"; // Host or IP
$regex .= "(:[0-9]{2,5})?"; // Port
$regex .= "(/([a-z0-9+$_-].?)+)*/?"; // Path
$regex .= "(?[a-z+&$_.-][a-z0-9;:@&%=+/$_.-]*)?"; // GET Query
$regex .= "(#[a-z_.-][a-z0-9+$_.-]*)?"; // Anchor

if(preg_match("/^$regex$/i", $url)) // `i` flag for case-insensitive
{
return true;
}
?>

लेकिन आपका उदाहरण URL सरलीकृत है, (w+).(w+) यह मेल होगा। किसी और ने उल्लेख किया filter_var जो बस एक है filter_var($url, FILTER_VALIDATE_URL) पर यह ऐसा नहीं लगता कि गैर-अस्सी की तरह है वर्ण ऐसा हो, सावधान रहें ...


जवाब के लिए 22 № 2

पीएचपी "रों filter_var फ़ंक्शन वह है जो आपको चाहिए। ढूंढें FILTER_VALIDATE_URL। आप भी सेट कर सकते हैं flags अपने कार्यान्वयन को ठीक करने के लिए।
रेगेक्स की जरूरत नहीं ...।


16 के लिए उत्तर № 3

नीचे दिए गए कोड ने मेरे लिए काम किया:

if(filter_var($text, FILTER_VALIDATE_URL))
{
echo "Yes it is url";
exit; // die well
}
else
{
echo "No it is not url";
// my else codes goes
}

आप भी निर्दिष्ट कर सकते हैं आरएफसी झंडे का उपयोग करके URL पर अनुपालन और अन्य आवश्यकताएं। देख PHP मान्य फ़िल्टर अधिक जानकारी के लिए।


जवाब के लिए 5 № 4

जांचें कि क्या यह एक मान्य url है (example.com) नहीं है एक वैध URL)

    function isValidURL($url)
{
return preg_match("|^http(s)?://[a-z0-9-]+(.[a-z0-9-]+)*
(:[0-9]+)?(/.*)?$|i", $url);
}

फ़ंक्शन का उपयोग कैसे करें:

    if(!isValidURL($fldbanner_url))
{
$errMsg .= "* Please enter valid URL including http://<br>";
}

स्रोत: http://phpcentral.com/208-url-validation-in-php.html


जवाब के लिए 4 № 5

Regexes एक URL के रूप में जटिल के रूप में कुछ को मान्य करने के लिए एक खराब तरीका है।

पीएचपी "रों filter_var () फ़ंक्शन URL को मान्य करने के लिए बहुत अधिक मजबूत तरीका प्रदान करता है। इसके अलावा, यह तेजी से है, क्योंकि यह मूल कोड है।


जवाब के लिए 2 № 6

मुझे नहीं लगता कि इसका कोई निश्चित उत्तर है। मान्य URL का उदाहरण:

localhost
http://xxx.xxx.xxx/alkjnsdf
abs.com

यदि आपके पास कुछ पाठ है। और यह एक बड़ी राशि नहीं है। आप CURL अनुरोध करके जांच कर सकते हैं और देखें कि क्या एक वैध प्रतिक्रिया देता है। अन्यथा अगर मैं लोकलहोस्ट डालता हूं, तो यह एक कड़ी हो सकती है और यह कुछ और हो सकता है और आप इसे जांच नहीं पाएंगे।


जवाब के लिए 2 № 7

इसे इस्तेमाल करे:

function isValidUrl($url) {
return preg_match("(?i)b((?:[a-z][w-]+:(?:/{1,3}|[a-z0-9%])|wwwd{0,3}[.]|[a-z0-9.-]+[.][a-z]{2,4}/)(?:[^s()<>]+|(([^s()<>]+|(([^s()<>]+)))*))+(?:(([^s()<>]+|(([^s()<>]+)))*)|[^s`!()[]{};:"".,<>?«»“”‘’]))", $url) > 0;
}

(रेगेक्स स्रोत)


उत्तर № 8 के लिए 1

यदि आपका चर एक url है या नहीं, यह जांचने के लिए आप निम्नलिखित regex पैटर्न का उपयोग कर सकते हैं:

$pattern = "b(([w-]+://?|www[.])[^s()<>]+(?:([wd]+)|([^[:punct:]s]|/)))";

उत्तर के लिए 1 № 9

आपके लिए कुछ ऐसा काम कर सकता है:

$arr = array("abc.com/foo",
"localhost",
"abc+def",
"how r u",
"https://how r u",
"ftp://abc.com",
"a.b");
foreach ($arr as $u) {
$url = $u;
if (!preg_match("#^(?:https?|ftp)://#", $url, $m))
$url = "http://" . $url;
echo "$u => ";
var_dump(filter_var($url, FILTER_VALIDATE_URL));
}

उत्पादन:

abc.com/foo => string(18) "http://abc.com/foo"
localhost => string(16) "http://localhost"
abc+def => string(14) "http://abc+def"
how r u => bool(false)
https://how r u => bool(false)
ftp://abc.com => string(13) "ftp://abc.com"
a.b => string(10) "http://a.b"

तो मूल रूप से जहाँ भी आप नोटिस करते हैं false वापसी मूल्य के रूप में जो आपके लिए एक INVALID URL है।