私は以前、同じような状況で同じようなことをしなければなりませんでした。そして、私が得た答えはおそらく最も美しいものではありませんが、それは機能し、郵便番号を取得することができます。
そのようなサービスはいくつかありますが、MaxMindは、かなり正確な緯度経度を提供するのに優れていることがわかりました(少なくとも都市/郵便番号の読み取りでは)。これにより、phpで自分でこれに対処する必要がなくなります。
maxmindリンク
警告:maxmindへのリンクを返すか、月額ライセンスを購入する必要があります。申し訳ありませんが、他のサービスを探すこともできます。そうしないと、自分でサービスを作成する必要があります。
つまり、ページにスクリプトを含めるという考え方です。これで、ページにこれらの関数が追加されました。
function geoip_country_code() { return 'US'; }
function geoip_country_name() { return 'United States'; }
function geoip_city() { return 'San Diego'; }
function geoip_region() { return 'CA'; }
function geoip_region_name() { return 'California'; }
function geoip_latitude() { return '32.7153'; }
function geoip_longitude() { return '-117.1573'; }
function geoip_postal_code() { return ''; }
function geoip_area_code() { return '619'; }
function geoip_metro_code() { return '825'; }
ここから、いくつかのジオコーディングを行う必要があります(グーグル経由または別のものを選択してください)。ジオコーディングから応答を取得すると、結果をループして郵便番号を引き出すことができます。そのステップでより多くの入力が必要な場合は、もう少しスクリプトを掘り下げることができます。
最も洗練されたアプローチではないかもしれませんが、私もジオロケーションを使用できないという制約があり、JavaScriptのみの環境にいました。これは私のために働いた。乾杯。