Hướng dẫn how validate url in php? - cách xác thực url trong php?

❮ Tham chiếu bộ lọc PHP

Thí dụ

Kiểm tra xem biến $ url là URL hợp lệ:

$url = "https://www.w3schools.com";

if (filter_var ($ url, filter_validate_url)) {& nbsp; & nbsp; & nbsp; echo ("$ url là một url hợp lệ");} ​​other {& nbsp; & nbsp; & nbsp; echo ("$ url không phải là một url hợp lệ");}?>
    echo("$url is a valid URL");
} else {
    echo("$url is not a valid URL");
}
?>

Hãy tự mình thử »


Định nghĩa và cách sử dụng

Bộ lọc Filter_Validate_URL xác thực URL.

Có thể & nbsp; cờ:

  • Filfil
  • Filter_flag_host_required - URL phải bao gồm tên máy chủ (như http://www.example.com)
  • Filter_Flag_Path_Required - URL phải có đường dẫn sau tên miền (như www.example.com/example1/)
  • Filter_flag_query_Required - URL phải có chuỗi truy vấn (như "example.php? Name = peter & age = 37")

Nhiều ví dụ hơn

Ví dụ dưới đây cả vệ sinh và xác thực một URL:

ví dụ 1

Trước tiên, xóa tất cả các ký tự bất hợp pháp khỏi biến $ url, sau đó kiểm tra xem đó có phải là URL hợp lệ không:

$url = "https://www.w3schools.com";

if (filter_var ($ url, filter_validate_url)) {& nbsp; & nbsp; & nbsp; echo ("$ url là một url hợp lệ");} ​​other {& nbsp; & nbsp; & nbsp; echo ("$ url không phải là một url hợp lệ");}?>
$url = filter_var($url, FILTER_SANITIZE_URL);

Hãy tự mình thử »
if (filter_var($url, FILTER_VALIDATE_URL)) {
    echo("$url is a valid URL");
} else {
    echo("$url is not a valid URL");
}
?>

Hãy tự mình thử »

Định nghĩa và cách sử dụng

Bộ lọc Filter_Validate_URL xác thực URL.

$url = "https://www.w3schools.com";

if (filter_var ($ url, filter_validate_url)) {& nbsp; & nbsp; & nbsp; echo ("$ url là một url hợp lệ");} ​​other {& nbsp; & nbsp; & nbsp; echo ("$ url không phải là một url hợp lệ");}?>
    echo("$url is a valid URL");
} else {
    echo("$url is not a valid URL");
}
?>

Hãy tự mình thử »


❮ Tham chiếu bộ lọc PHP


Tôi muốn sử dụng PHP để kiểm tra, nếu chuỗi được lưu trữ trong biến

if (filter_var($url, FILTER_VALIDATE_URL) === FALSE) {
    die('Not a valid URL');
}
2 chứa cú pháp liên kết hợp lệ hoặc nó chỉ là một văn bản bình thường. Hàm hoặc giải pháp mà tôi đang tìm kiếm, nên nhận ra tất cả các định dạng liên kết bao gồm các định dạng có các tham số có được.

Một giải pháp, được đề xuất trên nhiều trang web, để thực sự truy vấn chuỗi (sử dụng hàm Curl hoặc

if (filter_var($url, FILTER_VALIDATE_URL) === FALSE) {
    die('Not a valid URL');
}
3) là không thể trong trường hợp của tôi và tôi muốn tránh nó.

Tôi nghĩ về biểu thức thường xuyên hoặc một giải pháp khác.

Trejder

16.8K26 Huy hiệu vàng122 Huy hiệu bạc212 Huy hiệu đồng26 gold badges122 silver badges212 bronze badges

hỏi ngày 13 tháng 1 năm 2010 lúc 16:56Jan 13, 2010 at 16:56

Hướng dẫn how validate url in php? - cách xác thực url trong php?

CodeOveroverloadCodeOveroLoadCodeOverload

46.2K54 Huy hiệu vàng130 Huy hiệu bạc216 Huy hiệu đồng54 gold badges130 silver badges216 bronze badges

2

Bạn có thể sử dụng Trình xác nhận bộ lọc gốc

filter_var($url, FILTER_VALIDATE_URL);

Xác thực giá trị là URL (theo »http://www.faqs.org/rfcs/rfc2396), tùy chọn với các thành phần cần thiết. Hãy coi chừng một URL hợp lệ có thể không chỉ định giao thức HTTP http: // để có thể xác nhận thêm để xác định URL sử dụng giao thức dự kiến, ví dụ: ssh: // hoặc mailto:. Lưu ý rằng chức năng sẽ chỉ tìm thấy các URL ASCII là hợp lệ; Tên miền quốc tế hóa (chứa các ký tự không phải ASCII) sẽ thất bại.

Example:

if (filter_var($url, FILTER_VALIDATE_URL) === FALSE) {
    die('Not a valid URL');
}

Đã trả lời ngày 13 tháng 1 năm 2010 lúc 16:58Jan 13, 2010 at 16:58

Hướng dẫn how validate url in php? - cách xác thực url trong php?

19

Đây là hướng dẫn tốt nhất tôi tìm thấy ở đó:

http://www.w3schools.com/php/filter_validate_url.asp


Cờ có thể:

FILTER_FLAG_SCHEME_REQUIRED - URL must be RFC compliant (like http://example)
FILTER_FLAG_HOST_REQUIRED - URL must include host name (like http://www.example.com)
FILTER_FLAG_PATH_REQUIRED - URL must have a path after the domain name (like www.example.com/example1/)
FILTER_FLAG_QUERY_REQUIRED - URL must have a query string (like "example.php?name=Peter&age=37")

Đã trả lời ngày 22 tháng 6 năm 2016 lúc 20:58Jun 22, 2016 at 20:58

Hướng dẫn how validate url in php? - cách xác thực url trong php?

Erich Garcíaerich GarcíaErich García

1.56220 Huy hiệu bạc29 Huy hiệu đồng20 silver badges29 bronze badges

4

Sử dụng Filter_var () sẽ thất bại đối với các URL với các ký tự không ASCII, ví dụ: (http://pt.wikipedia.org/wiki/guimarães). Hàm sau mã hóa tất cả các ký tự không phải ASCII (ví dụ: http://pt.wikipedia.org/wiki/guimar%C3%A3es) trước khi gọi Filter_var ().

Hy vọng điều này sẽ giúp ai đó.

Đã trả lời ngày 2 tháng 5 năm 2017 lúc 19:54May 2, 2017 at 19:54

Hướng dẫn how validate url in php? - cách xác thực url trong php?

Huey lyhuey lyHuey Ly

4644 Huy hiệu bạc6 Huy hiệu đồng4 silver badges6 bronze badges

6

function is_url($uri){
    if(preg_match( '/^(http|https):\\/\\/[a-z0-9_]+([\\-\\.]{1}[a-z_0-9]+)*\\.[_a-z]{2,5}'.'((:[0-9]{1,5})?\\/.*)?$/i' ,$uri)){
      return $uri;
    }
    else{
        return false;
    }
}

Đã trả lời ngày 28 tháng 11 năm 2015 lúc 5:50Nov 28, 2015 at 5:50

MGHHGMMGHHGMmghhgm

1.56722 Huy hiệu bạc43 Huy hiệu đồng22 silver badges43 bronze badges

2

Cá nhân tôi muốn sử dụng biểu thức thường xuyên ở đây. Mã dưới đây hoàn hảo làm việc cho tôi.

$baseUrl     = url('/'); // for my case https://www.xrepeater.com
$posted_url  = "home";
// Test with one by one
/*$posted_url  = "/home";
$posted_url  = "xrepeater.com";
$posted_url  = "www.xrepeater.com";
$posted_url  = "http://www.xrepeater.com";
$posted_url  = "https://www.xrepeater.com";
$posted_url  = "https://xrepeater.com/services";
$posted_url  = "xrepeater.dev/home/test";
$posted_url  = "home/test";*/

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

if(preg_match("/^$regularExpression$/i", $posted_url)) { 
    if(preg_match("@^http|https://@i",$posted_url)) {
        $final_url = preg_replace("@(http://)+@i",'http://',$posted_url);
        // return "*** - ***Match : ".$final_url;
    }
    else { 
          $final_url = 'http://'.$posted_url;
          // return "*** / ***Match : ".$final_url;
         }
    }
else {
     if (substr($posted_url, 0, 1) === '/') { 
         // return "*** / ***Not Match :".$final_url."
".$baseUrl.$posted_url; $final_url = $baseUrl.$posted_url; } else { // return "*** - ***Not Match :".$posted_url."
".$baseUrl."/".$posted_url; $final_url = $baseUrl."/".$final_url; } }

Đã trả lời ngày 17 tháng 5 năm 2017 lúc 15:35May 17, 2017 at 15:35

Hướng dẫn how validate url in php? - cách xác thực url trong php?

1

Trên thực tế ... Filter_Var ($ url, Filter_validate_url); Không hoạt động tốt lắm. Khi bạn nhập một URL thực, nó hoạt động, nhưng, nó chỉ kiểm tra http: // vì vậy nếu bạn gõ một cái gì đó như "http: // weirtgcyaurbatc", nó vẫn sẽ nói nó là thật.

Đã trả lời ngày 2 tháng 11 năm 2019 lúc 3:37Nov 2, 2019 at 3:37

1

Đã đưa ra các vấn đề với Filter_Var () cần http: //, tôi sử dụng:

if (filter_var($url, FILTER_VALIDATE_URL) === FALSE) {
    die('Not a valid URL');
}
4

Đã trả lời ngày 20 tháng 6 năm 2017 lúc 14:43Jun 20, 2017 at 14:43

Hướng dẫn how validate url in php? - cách xác thực url trong php?

2

Bạn có thể sử dụng chức năng này, nhưng nó sẽ trả về sai nếu trang web ngoại tuyến.

  function isValidUrl($url) {
    $url = parse_url($url);
    if (!isset($url["host"])) return false;
    return !(gethostbyname($url["host"]) == $url["host"]);
}

Đã trả lời ngày 24 tháng 3 năm 2016 lúc 14:07Mar 24, 2016 at 14:07

Một cách khác để kiểm tra xem URL đã cho có hợp lệ là cố gắng truy cập nó không, chức năng bên dưới sẽ tìm nạp các tiêu đề từ URL đã cho, điều này sẽ đảm bảo rằng URL là hợp lệ và máy chủ web còn sống:AND web server is alive:

function is_url($url){
        $response = array();
        //Check if URL is empty
        if(!empty($url)) {
            $response = get_headers($url);
        }
        return (bool)in_array("HTTP/1.1 200 OK", $response, true);
/*Array
(
    [0] => HTTP/1.1 200 OK 
    [Date] => Sat, 29 May 2004 12:28:14 GMT
    [Server] => Apache/1.3.27 (Unix)  (Red-Hat/Linux)
    [Last-Modified] => Wed, 08 Jan 2003 23:11:55 GMT
    [ETag] => "3f80f-1b6-3e1cb03b"
    [Accept-Ranges] => bytes
    [Content-Length] => 438
    [Connection] => close
    [Content-Type] => text/html
)*/ 
    }   

Đã trả lời ngày 23 tháng 2 năm 2017 lúc 7:51Feb 23, 2017 at 7:51

Hướng dẫn how validate url in php? - cách xác thực url trong php?

Bud Damyanovbud DamyanovBud Damyanov

28.8K6 Huy hiệu vàng41 Huy hiệu bạc52 Huy hiệu Đồng6 gold badges41 silver badges52 bronze badges

2

Đã xem qua bài viết này từ năm 2012. Nó có tính đến các biến có thể hoặc không chỉ là URL đơn giản.may or may not be just plain URLs.

Tác giả của bài báo, David Müeller, cung cấp chức năng này mà ông nói, "... có thể có giá trị Wile [sic]," cùng với một số ví dụ về

if (filter_var($url, FILTER_VALIDATE_URL) === FALSE) {
    die('Not a valid URL');
}
5 và những thiếu sót của nó.

/**
 * Modified version of `filter_var`.
 *
 * @param  mixed $url Could be a URL or possibly much more.
 * @return bool
 */
function validate_url( $url ) {
    $url = trim( $url );

    return (
        ( strpos( $url, 'http://' ) === 0 || strpos( $url, 'https://' ) === 0 ) &&
        filter_var(
            $url,
            FILTER_VALIDATE_URL,
            FILTER_FLAG_SCHEME_REQUIRED || FILTER_FLAG_HOST_REQUIRED
        ) !== false
    );
}

Đã trả lời ngày 9 tháng 8 năm 2019 lúc 3:12Aug 9, 2019 at 3:12

Hướng dẫn how validate url in php? - cách xác thực url trong php?

DaveyjakenaveyjakeDaveyJake

2.3011 Huy hiệu vàng15 Huy hiệu bạc19 Huy hiệu đồng1 gold badge15 silver badges19 bronze badges

2

if (filter_var($url, FILTER_VALIDATE_URL) === FALSE) {
    die('Not a valid URL');
}
0

Đã trả lời ngày 15 tháng 9 năm 2020 lúc 13:36Sep 15, 2020 at 13:36

Hướng dẫn how validate url in php? - cách xác thực url trong php?

2

Nếu bất cứ ai quan tâm để sử dụng Curl để xác nhận. Bạn có thể sử dụng mã sau.

if (filter_var($url, FILTER_VALIDATE_URL) === FALSE) {
    die('Not a valid URL');
}
1

Đã trả lời ngày 12 tháng 5 năm 2020 lúc 6:14May 12, 2020 at 6:14

URL được xác thực là gì?

Xác thực liên kết Pings đích của URL và kiểm tra lỗi. Điều này giúp tránh các liên kết bị hỏng và không hợp lệ trong tài liệu được xuất bản của bạn và đặc biệt hữu ích cho các blogger.pings the destination of a URL and tests for errors. This helps avoid broken and invalid links in your published document, and is especially useful for bloggers.

Làm thế nào tôi có thể xác nhận một tên trong PHP?

PHP xác nhận dữ liệu ở phía máy chủ, được gửi bởi biểu mẫu HTML.Bạn cần xác nhận một vài điều: Chuỗi trống ...
$ name = $ _post ["name"] ;.
nếu (! ... .
$ Errmsg = "Chỉ cho phép bảng chữ cái và khoảng trắng." ;.
echo $ errmsg ;.
} khác {.
echo $ name ;.

Xác thực dữ liệu trong PHP là gì?

Xác thực trong PHP là quá trình chúng tôi kiểm tra xem thông tin đầu vào trong các trường khác nhau ở bất kỳ hình thức nào như văn bản, hộp kiểm hoặc nút radio, v.v., được gửi bởi người dùng cuối trong biểu mẫu là chính xác hoặc không sử dụng mã HTML.

Làm thế nào xác nhận URL YouTube trong PHP?

PHP $ yT_URL = "https://www.youtube.com/watch?v=CCO2TPGA-DM";$ url_parsed_arr = parse_url ($ yt_url);?> Mảng trên hiển thị sơ đồ, máy chủ, đường dẫn và truy vấn của URL.Chúng tôi sẽ kiểm tra máy chủ, đường dẫn, truy vấn và kiểm tra sự tồn tại của giá trị truy vấn URL để xác thực URL video YouTube.$yt_url = "https://www.youtube.com/watch?v=cCO2tPGa-dM"; $url_parsed_arr = parse_url($yt_url); ?> The above array shows the scheme, host, path and the query of the URL. We are going to check the host, the path, the query and check the existence of URL query value to validate YouTube video URL.