Domanda

Qualcuno ha una classe PHP o regex per analizzare un indirizzo nei componenti? Almeno, dovrebbe rompersi in questi componenti: informazioni su strada, stato, zip, paese

È stato utile?

Soluzione

Una soluzione agnostica di biblioteca/lingua sarebbe quella di utilizzare il geocoder di Google per questo. Può restituire informazioni dettagliate e rotte su un determinato indirizzo.

http://code.google.com/apis/maps/documentation/services.html#geocoding_structured

Altri suggerimenti

EDIT: usa questo come un esempio, se i tuoi dati sono tutti formattati in modo molto simile. Come ha sottolineato Strager, nella maggior parte dei casi ci saranno troppe variazioni nei dati per utilizzare un regex in modo efficace.

Supponendo che il tuo contributo sia del formato:

[Street Name], [State], [ZIP], [Country]

Questo regex farà il trucco:

m/^(.+?),(.+?),([0-9]+),(.+)$/

Ma le espressioni regolari sono abbastanza complesse ... se hai intenzione di usarlo per qualcosa di significativo, suggerirei di prendere il tempo per imparare il regex. Ho sempre trovato questo cheat sheet molto utile:

http://www.addedbytes.com/cheat-heets/regular-expressions-cheat-heet

Se stai parlando di dati preesistenti, buona fortuna a voi. Se questo è qualcosa per cui hai il controllo sull'input, ti consiglio di creare la separazione delle diverse parti dell'indirizzo a livello di input. Jus 'un suggerimento.

Ecco un Versione Python usando pyparsing per analizzare gli indirizzi di strada. Non è PHP, ma potrebbe darti alcune intuizioni sulla complessità del problema.

Ho trovato un parser di indirizzo PHP progettato per la Polonia ma potrebbe funzionare altrove con alcune modifiche:

PHP Indirizzo Parser

Il problema è che gli indirizzi si presentano in tutte le forme e dimensioni e non sono entità auto-validabili. Ciò significa che non c'è modo di sapere veramente se lo hai fatto bene senza ispezionare l'indirizzo a mano (e anche allora può essere soggetto a errori) o utilizzando un qualche tipo di software di verifica dell'indirizzo, sia software basato su desktop o online .

Esistono numerosi servizi Web di verifica dell'indirizzo che possono prendere un indirizzo e romperlo nelle parti dei componenti e farlo in modo sicuro in cui i risultati sono stati certificati per essere validi.

Dovrei menzionare che sono il fondatore di SmartyStreet. Facciamo indirizzi la verifica che include le capacità che hai chiesto per gli indirizzi basati sugli Stati Uniti. Il nostro prodotto di punta è viveaddress che è un API del servizio Web di verifica dell'indirizzo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top