Hent adresse via TelefonnummerTakket være Kenneths store hjælp, har jeg nu lavet et PHP-script, der henter en adresse ud fra et Telefon-nummer.
I kan et kort stykke tid endnu se det færdige resultat på adressen:
http://wpsos.dk/hent/Hentes fra KrakI Kenneths kode, bliver oplysningerne hentet fra de gule sider - Jeg fandt det dog nemmere at adskille de enkelte ting fra hinanden via Krak (Det vil sige at pille fx postnummeret ud af adressen).
Selve Koderne (2 filer)class.tlf.php
<?php
class DGSSeeker {
private $nummer, $navn, $adr, $postnr, $by;
function __construct($TelefonNummer){
$this->nummer = $TelefonNummer;
$this->GetData();
}
private function GetData(){
$data = preg_replace('/\s+\s+/','',file_get_contents("http://www.krak.dk/query?what=wp&search_word=".$this->nummer)); //Dette er stedet du søger (Kan evt. også være på de gule sider)
preg_match('/<h2><span class="fn">(.*)<\/span><\/h2>/',$data,$dataNavn); // Det er (.*) der hentes fra siden. Det uden om er for at lokalisere det vi vil hente - Se kildekoden på den side du søger fra.
$this->navn = $this->StripIt($dataNavn[0]);
preg_match('/<span class="street-address">(.*)<\/span><br\/>/',$data,$dataAdr);
$this->adr = $this->StripIt($dataAdr[0]);
preg_match('/<span class="postal-code">(.*)<\/span><span class="locality">/',$data,$dataZip);
$this->postnr = $this->StripIt($dataZip[0]);
preg_match('/<span class="locality">(.*)<\/span><\/a>/',$data,$dataBy);
$this->by = $this->StripIt($dataBy[0]);
$data = null;
}
private function StripIt($str){
$str = strip_tags($str);
$str = str_replace(" ","",$str);
$str = str_replace(" ","",$str);
$str = str_replace("<span class=\"fn\">","",$str);
$str = str_replace("<span class=\"street-address\">","",$str);
return $str;
}
function getName() {return $this->navn;}
function getAdr() {return $this->adr;}
function getPostnr() {return $this->postnr;}
function getBy() {return $this->by;}
function getNummer() {return $this->nummer;}
}
?>
index.php
<?php
include ("class.tlf.php");
if($_SERVER['REQUEST_METHOD'] == "POST" && $_GET[hent]) {
if($nummer == "") $status = "- Der skal skrives et telefonnummer.<br />";
if($status == "") {
$dgs = new DGSSeeker("$nummer"); //nummer du søger
$navn = $dgs->getName();
$adresse = $dgs->getAdr();
$post = $dgs->getPostnr();
$by = $dgs->getBy();
$tlf = $dgs->getNummer();
}
else $status = "Oplysningerne blev ikke hentet " . $status . "";
}
?>
<form action="index.php?hent=1" method="post">
Hent adresse via Telefonnummer: <input type="text" size="8" maxlength="8" name="nummer" value="" /> <input type="submit" name="submit" value="Hent" />
</form>
<p>
<?= $status ?>
<br />
Navn: <input type="text" size="30" name="navn" value="<?= $navn ?>" />
<br />
Adresse: <input type="text" size="30" name="adresse" value="<?= $adresse ?>" />
<br />
Postnr.: <input type="text" size="30" name="post" value="<?= $post ?>" />
<br />
By: <input type="text" size="30" name="by" value="<?= $by ?>" />
<br />
Tlf.: <input type="text" size="30" name="tlf" value="<?= $tlf ?>" />
</p>
Hvorfor lave tingene selv?Grunden til at jeg ikke køber mig til denne service, er at jeg mener sådanne løsninger bør findes på det frie marked. Det er når folk på nettet hjælper hinanden, at nettet udvikler sig. Som web-udvikler, kan man hurtigt købe sig fattig i andres løsninger... Jeg er ikke mindre flittig bruger af kraks hjemmeside, eller danmarkskort på baggrund af dette lille stykke kode.
Hvor kan det bruges?Jeg har selv tænkt mig at bruge det i en web-butik (Shopping-Cart), hvor folk skal indtaste deres adresse, og adressen på den der skal modtage det købte. Denne funktion sparer dem for en masse tid.
- Endnu engang, tak for hjælpen Kenneth!