stormcode / swotphp
识别属于大学或学院的电子邮件地址或域名。
v1.1
2024-04-17 13:31 UTC
Requires
- php: >=8.1
- stormcode/php-domain-parser: ~1.0
Requires (Dev)
- phpunit/phpunit: ^8.4
This package is auto-updated.
Last update: 2024-09-17 14:35:34 UTC
README
这是流行Ruby Gem "Swot"的移植版本。因此,请不要向此仓库贡献数据。请将任何新的学术域名贡献给此包的Ruby版本,地址为https://github.com/leereilly/swot。请遵循Lee仓库中提到的贡献指南。
我将从上游拉取域数据更改。
如果您有一个产品或服务,并提供学术折扣,那么审批过程中可能有一些手动环节。也许
.edu
电子邮件地址会自动批准,因为至少在大多数情况下,它们与美国高等教育机构相关联。也许.ac.uk
电子邮件地址会自动批准,因为它们肯定属于英国大学和学院。遗憾的是,并非每个国家都有专门的教育顶级域名(TLD),而且许多学校使用.com
或.net
。
Swot是一个社区驱动的或众包的库,用于验证域名和电子邮件地址是否与合法的大学或学院相关联——更具体地说,是与全球任何国家的提供高等教育、研究生教育或其他任何类型的高等教育的学术机构相关联。
安装
通过Composer安装。
"require": { "stormcode/swotphp": "1.0" }
用法
开始使用SwotPHP的最简单方法是使用外观来访问功能。然而,基本实现以普通的PHP对象的形式存在,以便开发人员可以自行控制构造。实现具有对PHP Domain Parser的依赖关系,后者是一个支持Public Suffix List的URL解析器实现。
可能会添加特定于框架的外观/服务提供者。原生外观是对象如何实例化的一个好例子。
原生
require_once('vendor/autoload.php'); use SwotPHP\Facades\Native\Swot;
验证电子邮件地址
Swot::isAcademic('lreilly@stanford.edu') # true Swot::isAcademic('lreilly@strath.ac.uk') # true Swot::isAcademic('lreilly@soft-eng.strath.ac.uk') # true Swot::isAcademic('pedro@ugr.es') # true Swot::isAcademic('lee@uottawa.ca') # true Swot::isAcademic('lee@leerilly.net') # false
验证域名
Swot::isAcademic('harvard.edu') # true Swot::isAcademic('www.harvard.edu') # true Swot::isAcademic('http://www.harvard.edu') # true Swot::isAcademic('http://www.github.com') # false Swot::isAcademic('http://www.rangers.co.uk') # false
查找学校名称
Swot::schoolName('lreilly@cs.strath.ac.uk') -> "University of Strathclyde" Swot::schoolName('http://www.stanford.edu') -> "Stanford University"
已知问题
- 缺乏从Ruby gem的域名列表自动导入数据。
- 由于PHP和Ruby的语法差异,该包存在一些架构问题。当我有时间时,我想关注两个领域:
- 在保持公共接口的同时,合并一些内部API的流程。
- 实现访问公共后缀注册表的另一种方式。目前,该包可能正在滥用一个优秀的URL解析器,我希望研究为建模公共后缀注册表的规则集和算法创建单独组件的可能性。