![]() | ||||||||
![]() |
Karte | Kalender | Suche | Bookmarks | Experte | FAQ |
ModuleDownloadSMFinder_XML_importParseAdrWird verwendet von:SMFinder_Main SMFinder_XML_import adr existiert im XML nur als Unterelement von address, kann dort aber mehrfach enthalten sein und wird daher als Array $adrXML vorsortiert übergeben. Die einzelnen Adressen werden dann nacheinander in ihre Elemente zerlegt. Das Element tel kann mehrfach vorkommen; alle Elemente dieses Typs werden zu Beginn aus dem $adrXML[$n] extrahiert. Anschließend wird nacheinander nach den Unterelementen von adr gesucht. Da diese in der Regel nur einfach vorkommen dürfen, ist nur der erste gefundene Eintrag Das Element email darf mehrfach vorkommen, so dass das Array aller gefundenen Mailadressen aus dem XML direkt in das Ergebnisarray $adr[$n]['email'] übergeben werden kann. Auch das Element tel, das zuvor schon separiert wurde, darf mehrfach vorkommen, hierbei muss allerdings jeweils unterschieden werden, ob es sich um eine Telefonnummer oder Telefaxnummer handelt. <?php /* published under GPL www.gnu.org/licenses/gpl.html */ function SMFinder_XML_importParseAdr($adrXML){ include_once("SMFinder_XML_findAllElements.php"); include_once("SMFinder_XML_extractTag.php"); include_once("SMFinder_XML_checkType.php"); include_once("SMFinder_Geo_getGeo.php"); $nn=-1; # echo "<textarea cols='60' rows='20'>".$adrXML[0]."</textarea>"; for ($n=0;$n<count($adrXML);$n++){ if (strlen($adrXML[$n])>11){ $nn++; list($tel,$NoTel,$adrXML[$n]) = SMFinder_XML_findAllElements($adrXML[$n],"tel"); list($tags,$NoTags)=SMFinder_XML_extractTag($adrXML[$n],"desc"); $adr[$nn]['desc']=$tags[0]; list($tags,$NoTags)=SMFinder_XML_extractTag($adrXML[$n],"pobox"); $adr[$nn]['pobox']=$tags[0]; list($tags,$NoTags)=SMFinder_XML_extractTag($adrXML[$n],"street"); $adr[$nn]['street']=$tags[0]; list($tags,$NoTags)=SMFinder_XML_extractTag($adrXML[$n],"city"); $adr[$nn]['city']=$tags[0]; list($tags,$NoTags)=SMFinder_XML_extractTag($adrXML[$n],"region"); $adr[$nn]['region']=$tags[0]; list($tags,$NoTags)=SMFinder_XML_extractTag($adrXML[$n],"pcode"); $adr[$nn]['pcode']=$tags[0]; list($tags,$NoTags)=SMFinder_XML_extractTag($adrXML[$n],"country"); $adr[$nn]['country']=$tags[0]; list($tags,$NoTags)=SMFinder_XML_extractTag($adrXML[$n],"lat"); $adr[$nn]['geoLat']=$tags[0]; list($tags,$NoTags)=SMFinder_XML_extractTag($adrXML[$n],"lon"); $adr[$nn]['geoLon']=$tags[0]; list($adr[$nn]['email'],$NoTags)=SMFinder_XML_extractTag($adrXML[$n],"email"); list($lat,$lon,$PLZ,$City) = # SMFinder_Geo_getGeo($adr[$nn]['pcode'],$adr[$nn]['city']); if (empty($adr[$nn]['geoLat'])){$adr[$nn]['geoLat']=$lat;} if (empty($adr[$nn]['geoLon'])){$adr[$nn]['geoLon']=$lon;} if (empty($adr[$nn]['country']) AND strlen($adr[$nn]['pcode'])==5){ $adr[$nn]['country']="Deutschland"; } $i=-1; $j=-1; for ($t=0;$t<$NoTel;$t++){ //2009-01-27 $NoTags -> $NoTel if (SMFinder_XML_checkType($tel[$t],"PHONE")){ $i++; list($tags,$NoTags)=SMFinder_XML_extractTag($tel[$t],"tel"); $adr[$nn]['fon'][$i]=$tags[0]; }else if (SMFinder_XML_checkType($tel[$t],"FAX")){ $j++; list($tags,$NoTags)=SMFinder_XML_extractTag($tel[$t],"tel"); $adr[$nn]['fax'][$i]=$tags[0]; } } #t } #endif } #n if ($nn>=0){ return $adr; }else{ return NULL; } } ?> IndexFür die Funktionalität des SM-Finders sind viele kleine Tools notwendig. Alle Funktionen beginnen mit SMFinder_ um deren Ursprung zu kennzeichnen. Dem schließt sich die Funktionsgruppe, z.B. Geo_ an, gefolgt vom eigentlichen Namen, der die Aufgabe der Funktion widerspiegeln soll, z.B. PLZ2DB. Der gesamte Sourcecode darf gemäß GNU General Public License weiterverbreitet werden. |
![]() |
Die hier zur Verfügung gestellten Informationen basieren auf dem Austauschnetzwerk des SM-Finders.
Änderungen an eurem Datensatz könnt ihr z.B. beim Arbeitskreis SM-Finder vornehmen.
Bei Fragen und Problemen schreibt bitte an: sm-finderki-co.org
Der AK-SM-Finder ist korporatives Mitglied der BVSM e.V.
Für Aktualität und Richtigkeit der dargebotenen Infomationen kann keine Gewähr übernommen werden!