chriskonnertz/addresses

此包已废弃,不再维护。未建议替代包。

简单的地址验证

dev-master 2019-04-16 14:17 UTC

This package is not auto-updated.

Last update: 2020-01-16 20:21:07 UTC


README

注意:此存储库不再维护!

此PHP类尝试验证用户输入(姓名和地址)。

不使用自动加载实例化

require __DIR__.'/src/ChrisKonnertz/Addresses/Addresses.php';
require __DIR__.'/src/ChrisKonnertz/Addresses/ResultInterface.php';
require __DIR__.'/src/ChrisKonnertz/Addresses/Result.php';

$addresses = new \ChrisKonnertz\Addresses\Addresses();

如果您使用Composer进行自动加载,则可以省略require语句。

设置API密钥

$addresses->setApiKey('your-api-key');

设置语言代码

$addresses->setLanguage('de');

验证数据

$result = $addresses->validate();

validate方法返回一个实现ReturnInterface的对象。默认情况下,这是一个Result对象。

检查结果(数据)是否有效

$valid = $result->isValid();

如果数据无效,则$result对象包含一个无效值数组。使用$result->getData()检索此数组。

检查地址是否已更正

Google Geocache API尝试更正地址,例如,如果街道名称包含拼写错误。使用这些方法检查地址状态:addressFoundaddressNotFoundaddressFoundAfterCorrection

HTML表单示例

<form method="POST" action="">
    <label for="forename">Forename</label>
    <input type="text" id="forename" name="forename">

    <label for="lastname">Last Name</label>
    <input type="text" id="lastname" name="lastname">

    <label for="postalcode">Postal Code</label>
    <input type="text" id="postalcode" name="postalcode">

    <label for="location">Location</label>
    <input type="text" id="location" name="location">

    <label for="street">Street</label>
    <input type="text" id="street" name="street">

    <label for="streetnumber">House Number</label>
    <input type="text" id="streetnumber" name="streetnumber">

    <label for="country">Country</label>
    <input type="text" id="country" name="country">

    <input type="submit" value="Validate" id="submit" name="submit">
</form>`

PHP代码示例

if (isset($_POST['submit'])) {
    // Assuming Composer auto loading
    $addresses = new \ChrisKonnertz\Addresses\Addresses();

    $addresses->setAll($_POST);
    
    $result = $addresses->validate();
    
    if ($result->isValid()) {
        echo 'Data is valid.';
    } else {
        echo 'Data is invalid!';
    }
}