2017-11-25 43 views
1

我做了一個表單,用戶發佈他們的產品信息和數據。信息包含產品全名,製造商名稱,聯繫地址和製造商網站鏈接。現在我知道驗證鏈接,我們可以使用FILTER_VALIDATE_URL php變量。現在的事情是假設如果有人發佈https://www.google.com?page=bla+bla,這個FILTER_VALIDATE_URL變量允許.com or .net or .org等後的網址。這意味着PHP變量允許這裏的路徑和URL驗證不結束在這裏。PHP變量只檢查鏈接

我想要的是你們知道任何PHP變量只能驗證從https到.com or .net or .org等URL,並不允許像上面的例子路徑。

編輯: 該列表更新的PDF格式,可以進一步訪問整個公司。讓有人試圖把錯誤的鏈接這就是爲什麼我需要鏈接驗證。

+1

請編輯您的問題嗎?你想用鏈接/網址做什麼?爲什麼URL包含查詢字符串有問題?請詳細描述你想要做的事情。 – Progman

+1

再說一次,爲什麼'http:// www.example.org /'好,但是http://www.example.org/file.php?var = 42'不重要? – Progman

回答

1

parse_url返回一個包含url組件的數組。例如

var_dump(parse_url('https://www.google.com?page=bla+bla')); 

輸出

array (size=3) 
    'scheme' => string 'https' (length=5) 
    'host' => string 'www.google.com' (length=14) 
    'query' => string 'page=bla+bla' (length=12) 

然後你可以驗證host數組元素,而忽略了爲什麼要驗證該鏈接的query

$clean_url = parse_url($url)['host'];