我正在尝试使用正则表达式和 PHP 来验证 URL。 我需要一个有效的模式:
- 格式正确的网址;
- http://www.domain.PF (这个PF非常重要,其他扩展无效);
- https://www.domain.PF
- ftp://...;
- 域名.PF;
- www.domain.PF;
任何其他均无效,因此您不能拥有 ssh://、.com 域等。
我尝试了以下模式:
/(((http|ftp|https):\/{2})+(([0-9a-z_-]+\.)+(pf)(:[0-9]+)?((\/([~0-9a-zA-Z\#\+\%@\.\/_-]+))?(\?[0-9a-zA-Z\+\%@\/&\[\];=_-]+)?)?))\b/imuS
但是我花了很多时间(和头发)试图让它按照我需要的方式工作。
如有任何建议,我们将不胜感激。
最佳答案
有parse_url PHP 中的函数。
这样验证 parse_url
结果的 scheme
和 host
就会容易得多。
关于PHP,验证用户提交的具有特定域的 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21983266/