Heim Backend-Entwicklung PHP-Tutorial PHP ermittelt Länder, Provinzen, Städte und Umgebungsdaten basierend auf geografischen Koordinaten

PHP ermittelt Länder, Provinzen, Städte und Umgebungsdaten basierend auf geografischen Koordinaten

Aug 08, 2016 am 09:19 AM
array curl gt param

Funktion: Wenn die App die geografischen Koordinaten des Benutzers erhält, kann sie anhand der Koordinaten das Land, die Provinz, die Stadt und die Umgebungsdaten des Benutzers ermitteln.

Prinzip: Basierend auf BaiduGeocoding API Sie müssen sich zuerst als Baidu-Entwickler registrieren und dann Baidu AK (Schlüssel)
Geocoding.class.php

<code><span><span><span><?php</span>
/**
 * 根据地理坐标获取国家、省份、城市,及周边数据类(利用百度Geocoding API实现)
 * 百度密钥获取方法:http://lbsyun.baidu.com/apiconsole/key?application=key(需要先注册百度开发者账号)
 * Date:    2015-07-30
 * Author:  fdipzone
 * Ver: 1.0
 *
 * Func:
 * Public  getAddressComponent 根据地址获取国家、省份、城市及周边数据
 * Private toCurl              使用curl调用百度Geocoding API
 */</span><span><span>class</span><span>Geocoding</span> {</span><span>// 百度Geocoding API</span><span>const</span> API = <span>'http://api.map.baidu.com/geocoder/v2/'</span>;

    <span>// 不显示周边数据</span><span>const</span> NO_POIS = <span>0</span>;

    <span>// 显示周边数据</span><span>const</span> POIS = <span>1</span>; 

    <span>/**
     * 根据地址获取国家、省份、城市及周边数据
     *<span> @param</span>  String  $ak        百度ak(密钥)
     *<span> @param</span>  Decimal $longitude 经度
     *<span> @param</span>  Decimal $latitude  纬度
     *<span> @param</span>  Int     $pois      是否显示周边数据
     *<span> @return</span> Array
     */</span><span>public</span><span>static</span><span><span>function</span><span>getAddressComponent</span><span>(<span>$ak</span>, <span>$longitude</span>, <span>$latitude</span>, <span>$pois</span>=self::NO_POIS)</span>{</span><span>$param</span> = <span>array</span>(
                <span>'ak'</span> => <span>$ak</span>,
                <span>'location'</span> => implode(<span>','</span>, <span>array</span>(<span>$latitude</span>, <span>$longitude</span>)),
                <span>'pois'</span> => <span>$pois</span>,
                <span>'output'</span> => <span>'json'</span>
        );

        <span>// 请求百度api</span><span>$response</span> = <span>self</span>::toCurl(<span>self</span>::API, <span>$param</span>);

        <span>$result</span> = <span>array</span>();

        <span>if</span>(<span>$response</span>){
            <span>$result</span> = json_decode(<span>$response</span>, <span>true</span>);
        }

        <span>return</span><span>$result</span>;

    }

    <span>/**
     * 使用curl调用百度Geocoding API
     *<span> @param</span>  String $url    请求的地址
     *<span> @param</span>  Array  $param  请求的参数
     *<span> @return</span> JSON
     */</span><span>private</span><span>static</span><span><span>function</span><span>toCurl</span><span>(<span>$url</span>, <span>$param</span>=array<span>()</span>)</span>{</span><span>$ch</span> = curl_init();

        <span>if</span>(substr(<span>$url</span>,<span>0</span>,<span>5</span>)==<span>'https'</span>){
            curl_setopt(<span>$ch</span>, CURLOPT_SSL_VERIFYPEER, <span>false</span>); <span>// 跳过证书检查</span>
            curl_setopt(<span>$ch</span>, CURLOPT_SSL_VERIFYHOST, <span>true</span>);  <span>// 从证书中检查SSL加密算法是否存在</span>
        }

        curl_setopt(<span>$ch</span>, CURLOPT_RETURNTRANSFER, <span>true</span>);
        curl_setopt(<span>$ch</span>, CURLOPT_URL, <span>$url</span>);
        curl_setopt(<span>$ch</span>, CURLOPT_POST, <span>true</span>);
        curl_setopt(<span>$ch</span>, CURLOPT_POSTFIELDS, http_build_query(<span>$param</span>));

        <span>$response</span> = curl_exec(<span>$ch</span>);

        <span>if</span>(<span>$error</span>=curl_error(<span>$ch</span>)){
            <span>return</span><span>false</span>;
        }

        curl_close(<span>$ch</span>);

        <span>return</span><span>$response</span>;

    }

}

<span>?></span></span></span></span></code>
Nach dem Login kopieren


demo.php

<code><span><?php</span><span>require</span><span>"Geocoding.class.php"</span>;

<span>$ak</span> = <span>'这里填写你的百度AK'</span>;
<span>$longitude</span> = <span>113.327782</span>;
<span>$latitude</span> = <span>23.137202</span>;

<span>$result</span> = Geocoding::getAddressComponent(<span>$ak</span>, <span>$longitude</span>, <span>$latitude</span>, Geocoding::NO_POIS);

<span>echo</span><span>'<pre class="brush:php;toolbar:false">'</span>;
print_r(<span>$result</span>);
<span>echo</span><span>'
'; ?>
Nach dem Login kopieren


Beispiel für Rückgaben:

<code><span>Array</span>
(
    [status] => <span>0</span>
    [result] => <span>Array</span>
        (
            [location] => <span>Array</span>
                (
                    [lng] => <span>113.32778195925</span>
                    [lat] => <span>23.137201991056</span>
                )

            [formatted_address] => 广东省广州市天河区体育西横街<span>35</span>号
            [business] => 天河城,体育中心,沙河
            [addressComponent] => <span>Array</span>
                (
                    [city] => 广州市
                    [country] => 中国
                    [direction] => 附近
                    [distance] => <span>14</span>
                    [district] => 天河区
                    [province] => 广东省
                    [street] => 体育西横街
                    [street_number] => <span>35</span>号
                    [country_code] => <span>0</span>
                )

            [poiRegions] => <span>Array</span>
                (
                )

            [sematic_description] => 红盾大厦北<span>58</span>米
            [cityCode] => <span>257</span>
        )

)</code>
Nach dem Login kopieren


Quellcode-Download-Adresse: Klicken Sie hier, um

Copyright anzuzeigen Aussage: Dieser Artikel ist ein Original des Bloggers. Artikel dürfen nicht ohne Genehmigung des Bloggers reproduziert werden.

Das Obige stellt vor, wie PHP Länder, Provinzen, Städte und Umgebungsdaten basierend auf geografischen Koordinaten abrufen kann, einschließlich der relevanten Inhalte. Ich hoffe, dass es für Freunde hilfreich ist, die an PHP-Tutorials interessiert sind.

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Was sind die Unterschiede zwischen Huawei GT3 Pro und GT4? Was sind die Unterschiede zwischen Huawei GT3 Pro und GT4? Dec 29, 2023 pm 02:27 PM

Viele Benutzer werden sich bei der Auswahl von Smartwatches für die Marke Huawei entscheiden. Viele Benutzer sind neugierig auf den Unterschied zwischen Huawei GT3pro und GT4. Was sind die Unterschiede zwischen Huawei GT3pro und GT4? 1. Aussehen GT4: 46 mm und 41 mm, das Material ist Glasspiegel + Edelstahlgehäuse + hochauflösende Faserrückschale. GT3pro: 46,6 mm und 42,9 mm, das Material ist Saphirglas + Titangehäuse/Keramikgehäuse + Keramikrückschale 2. Gesundes GT4: Mit dem neuesten Huawei Truseen5.5+-Algorithmus werden die Ergebnisse genauer. GT3pro: EKG-Elektrokardiogramm sowie Blutgefäß und Sicherheit hinzugefügt

So realisieren Sie die gegenseitige Konvertierung zwischen CURL- und Python-Anfragen in Python So realisieren Sie die gegenseitige Konvertierung zwischen CURL- und Python-Anfragen in Python May 03, 2023 pm 12:49 PM

Sowohl Curl als auch Pythonrequests sind leistungsstarke Tools zum Senden von HTTP-Anfragen. Während Curl ein Befehlszeilentool ist, mit dem Sie Anfragen direkt vom Terminal aus senden können, bietet die Requests-Bibliothek von Python eine eher programmatische Möglichkeit, Anfragen aus Python-Code zu senden. Die grundlegende Syntax zum Konvertieren des Curl-Befehls in den Pythonrequestscurl-Befehl lautet wie folgt: curl[OPTIONS]URL Beim Konvertieren des Curl-Befehls in eine Python-Anfrage müssen wir die Optionen und die URL in Python-Code konvertieren. Hier ist ein Beispiel für einen CurlPOST-Befehl: curl-XPOST https://example.com/api

Tutorial zum Aktualisieren der Curl-Version unter Linux! Tutorial zum Aktualisieren der Curl-Version unter Linux! Mar 07, 2024 am 08:30 AM

Um die Curl-Version unter Linux zu aktualisieren, können Sie die folgenden Schritte ausführen: Überprüfen Sie die aktuelle Curl-Version: Zunächst müssen Sie die im aktuellen System installierte Curl-Version ermitteln. Öffnen Sie ein Terminal und führen Sie den folgenden Befehl aus: curl --version Dieser Befehl zeigt die aktuellen Informationen zur Curl-Version an. Verfügbare Curl-Version bestätigen: Bevor Sie Curl aktualisieren, müssen Sie die neueste verfügbare Version bestätigen. Sie können die offizielle Website von Curl (curl.haxx.se) oder verwandte Softwarequellen besuchen, um die neueste Version von Curl zu finden. Laden Sie den Curl-Quellcode herunter: Laden Sie mit Curl oder einem Browser die Quellcodedatei für die Curl-Version Ihrer Wahl herunter (normalerweise .tar.gz oder .tar.bz2).

PHP8.1 veröffentlicht: Einführung von Curl für die gleichzeitige Verarbeitung mehrerer Anfragen PHP8.1 veröffentlicht: Einführung von Curl für die gleichzeitige Verarbeitung mehrerer Anfragen Jul 08, 2023 pm 09:13 PM

PHP8.1 veröffentlicht: Einführung von Curl für die gleichzeitige Verarbeitung mehrerer Anfragen Vor kurzem hat PHP offiziell die neueste Version von PHP8.1 veröffentlicht, die eine wichtige Funktion eingeführt hat: Curl für die gleichzeitige Verarbeitung mehrerer Anfragen. Diese neue Funktion bietet Entwicklern eine effizientere und flexiblere Möglichkeit, mehrere HTTP-Anfragen zu verarbeiten und verbessert so die Leistung und das Benutzererlebnis erheblich. In früheren Versionen erforderte die Bearbeitung mehrerer Anfragen häufig die Erstellung mehrerer Curl-Ressourcen und die Verwendung von Schleifen zum Senden bzw. Empfangen von Daten. Obwohl diese Methode den Zweck erreichen kann

Fix: Snipping-Tool funktioniert unter Windows 11 nicht Fix: Snipping-Tool funktioniert unter Windows 11 nicht Aug 24, 2023 am 09:48 AM

Warum das Snipping-Tool unter Windows 11 nicht funktioniert Das Verständnis der Grundursache des Problems kann dabei helfen, die richtige Lösung zu finden. Hier sind die häufigsten Gründe, warum das Snipping Tool möglicherweise nicht ordnungsgemäß funktioniert: Focus Assistant ist aktiviert: Dies verhindert, dass das Snipping Tool geöffnet wird. Beschädigte Anwendung: Wenn das Snipping-Tool beim Start abstürzt, ist es möglicherweise beschädigt. Veraltete Grafiktreiber: Inkompatible Treiber können das Snipping-Tool beeinträchtigen. Störungen durch andere Anwendungen: Andere laufende Anwendungen können mit dem Snipping Tool in Konflikt geraten. Das Zertifikat ist abgelaufen: Ein Fehler während des Upgrade-Vorgangs kann zu diesem Problem führen. Diese einfache Lösung ist für die meisten Benutzer geeignet und erfordert keine besonderen technischen Kenntnisse. 1. Aktualisieren Sie Windows- und Microsoft Store-Apps

Von Anfang bis Ende: So verwenden Sie die PHP-Erweiterung cURL, um HTTP-Anfragen zu stellen Von Anfang bis Ende: So verwenden Sie die PHP-Erweiterung cURL, um HTTP-Anfragen zu stellen Jul 29, 2023 pm 05:07 PM

Von Anfang bis Ende: So verwenden Sie die PHP-Erweiterung cURL für HTTP-Anfragen. Einführung: Bei der Webentwicklung ist es häufig erforderlich, mit APIs von Drittanbietern oder anderen Remote-Servern zu kommunizieren. Die Verwendung von cURL zum Senden von HTTP-Anfragen ist eine gängige und leistungsstarke Methode. In diesem Artikel wird erläutert, wie Sie mit PHP cURL erweitern, um HTTP-Anfragen auszuführen, und einige praktische Codebeispiele bereitstellen. 1. Vorbereitung Stellen Sie zunächst sicher, dass PHP die cURL-Erweiterung installiert hat. Zur Überprüfung können Sie php-m|grepcurl in der Befehlszeile ausführen

Was ist Linux Curl? Was ist Linux Curl? Apr 20, 2023 pm 05:05 PM

Unter Linux ist Curl ein sehr praktisches Tool zum Übertragen von Daten zum und vom Server. Es verwendet URL-Regeln, um unter der Befehlszeile zu arbeiten, und ist ein umfassendes Übertragungstool. Curl bietet viele sehr nützliche Funktionen, darunter Proxy-Zugriff, Benutzerauthentifizierung, FTP-Upload und -Download, HTTP POST, SSL-Verbindung, Cookie-Unterstützung, Breakpoint-Wiederaufnahme und so weiter.

Wie gehe ich mit der 301-Umleitung von Webseiten in PHP Curl um? Wie gehe ich mit der 301-Umleitung von Webseiten in PHP Curl um? Mar 08, 2024 am 11:36 AM

Wie gehe ich mit der 301-Umleitung von Webseiten in PHPCurl um? Wenn Sie PHPCurl zum Senden von Netzwerkanfragen verwenden, werden Sie häufig auf den von der Webseite zurückgegebenen Statuscode 301 stoßen, der darauf hinweist, dass die Seite dauerhaft umgeleitet wurde. Um diese Situation richtig zu handhaben, müssen wir der Curl-Anfrage einige spezifische Optionen und Verarbeitungslogik hinzufügen. Im Folgenden wird detailliert beschrieben, wie mit der 301-Umleitung von Webseiten in PHPCurl umgegangen wird, und es werden spezifische Codebeispiele bereitgestellt. 301-Redirect-Verarbeitungsprinzip 301-Redirect bedeutet, dass der Server eine 30 zurückgibt

See all articles