Vâng về mặt kỹ thuật, bất kỳ URI mà bắt đầu với một chương trình (như http://
) và chứa các ký tự URI hợp lệ sau đó là hợp lệ theo chính thức URI đặc điểm kỹ thuật trong RFC 3986:
Mỗi URI bắt đầu với tên lược đồ, như được định nghĩa trong Phần 3.1, đề cập đến một đặc điểm kỹ thuật cho việc gán các định danh trong lược đồ đó. Như vậy, cú pháp URI là một hệ thống đặt tên liên kết và có thể mở rộng trong đó đặc tả của mỗi lược đồ có thể hạn chế cú pháp và ngữ nghĩa của các định danh bằng cách sử dụng lược đồ đó.
Vì vậy, không có gì lạ về sự trở lại bạn đang nhận được - đó là điều đáng lẽ phải xảy ra. Về lý do tại sao bạn nên sử dụng các filter_var
với cờ FILTER_VALIDATE_URL
... nó là cách thích hợp ngữ nghĩa hơn làm một cái gì đó như sau cho mỗi chương trình URL có thể, bạn sẽ không đồng ý?
if (strpos($url, 'http://') === 0
|| strpos($url, 'ftp://') === 0
|| strpos($url, 'telnet://') === 0
) {
// it's a valid URL!
}
hiển thị cho chúng tôi những gì bạn đã thử nghiệm và cách thực hiện. –
thử http: // 20, http: // ví dụ, chúng hợp lệ – Jenny
mã bạn sử dụng để thực hiện thử nghiệm là? –