目次
ディスカッションへの返信 (解決策)
ホームページ バックエンド開発 PHPチュートリアル PHP は URL 経由でアクセスし、新しい URL を取得する方法 [Baidu Map の呼び出し]

PHP は URL 経由でアクセスし、新しい URL を取得する方法 [Baidu Map の呼び出し]

Jun 23, 2016 pm 01:55 PM
php url 地図 アクセス 移行

モバイル WeChat でナビゲーションを実行したいです
現在のナビゲーション URL アドレスを IE アドレスバーに入力すると、正常にアクセスできます: http://api.map.baidu.com/direction?origin=latlng:24.481428 , 118.124813|name:Test starting point&destination=latlng:24.503361,118.139877|name:Testing end point&mode=driving®ion=Xiamen&output=html

入力後、Enter を押すと、アドレスが次のように変更されたことがわかります:
http://map .baidu.com /?l=&s=nav%26sn%3D1%24%24%24%2413149737.11%2C2794316.21%24%24%E6%B5%8B%E8%AF%95%E8%B5%B7% E7%82% B9%24%24%24%24%24%24%26en%3D1%24%24%24%2413151414.05%2C2796984.18%24%24%E6%B5%8B%E8%AF%95% E7%BB% 88%E7%82%B9%24%24%24%24%24%24%26sc%3D194%26ec%3D194

に基づいてリクエストした後、PHP を使用して新しい URL を取得する方法を知りたいです元のURLは?ありがとう。






ディスカッションへの返信 (解決策)

トランスコードの理由は、中国語の文字が含まれているためです。WeChat で、IPHONE ナビゲーション ページが開けず、空白であることがわかりました。
ただし、URL 経由でリクエストした後に取得した新しい URL が WeChat で設定されている場合は、Baidu Map を正常に開くことができます。

それで、これを処理する関数を書きたいのですが、アドバイスをお願いします。ありがとうございます。

元の URL は http://api.map.baidu.com/direction?origin=latlng:24.481428,118.124813|name:test starting point&destination=latlng:24.503361,118.139877|name:test endpoint&mode=driving®ion=Xiamen &output= html

新しい URL は http://map.baidu.com/?l=&s=nav%26sn%3D1%24%24%24%2413149737.11%2C2794316.21%24%24%E6%B5% 8B% E8%AF%95%E8%B5%B7%E7%82%B9%24%24%24%24%24%24%26en%3D1%24%24%24%2413151414.05%2C2796984.18%24% 24% E6%B5%8B%E8%AF%95%E7%BB%88%E7%82%B9%24%24%24%24%24%24%26sc%3D194%26ec%3D194

新しい URL を使用してくださいと入力しても機能しません。

では、root??URL を取得して、それを使用しますか?

元の URL は http://api.map.baidu.com/direction?origin=latlng:24.481428,118.124813|name:test starting point&destination=latlng:24.503361,118.139877|name:test endpoint&mode=driving®ion= アモイ&output= html

新しい URL は http://map.baidu.com/?l=&s=nav%26sn%3D1%24%24%24%2413149737.11%2C2794316.21%24%24%E6%B5 %8B% E8%AF%95%E8%B5%B7%E7%82%B9%24%24%24%24%24%24%26en%3D1%24%24%24%2413151414.05%2C2796984.18%24 %24% E6%B5%8B%E8%AF%95%E7%BB%88%E7%82%B9%24%24%24%24%24%24%26sc%3D194%26ec%3D194

新しい URL を使用してください開くことはできますが、URLがありません???

では、root??URL を取得して、それを使用しますか?



お兄さん、そういう意味です。古いURLから新しいURLを生成するようなものです。
ありがとうございました。

rree

<?php$url = 'http://api.map.baidu.com/direction?origin=latlng:24.481428,118.124813|name:测试起点&destination=latlng:24.503361,118.139877|name:测试终点&mode=driving&region=厦门&output=html';$newurl = getMapUrl($url);echo $newurl;function getMapUrl($url){    $result = get_headers($url, true);    return isset($result['Location'])? $result['Location'] : '';}?>
ログイン後にコピー



兄弟、返信ありがとう。
しかし、私は Sina SAE を使用しているので、次のプロンプトが表示されます:
警告: get_headers() はセキュリティ上の理由から test.php の 7 行目で無効になっています


get_headers() それを置き換える他の方法はありますか?ありがとう。

试试.

$url = 'http://api.map.baidu.com/direction?origin=latlng:24.481428,118.124813|name:测试起点&destination=latlng:24.503361,118.139877|name:测试终点&mode=driving&region=厦门&output=html';$newurl = getMapUrl($url);echo $newurl;function getMapUrl($url){    file_get_contents($url);    $result = $http_response_header;    if($result){        foreach($result as $val){            if(substr($val,0,10)=='Location: '){                return str_replace('Location: ','', $val);            }        }    }    return '';}
ログイン後にコピー
ログイン後にコピー


禁用的函数:

php_real_logo_guid
php_egg_logo_guid
readlink
linkinfo
symlink
link
set_file_buffer
exec
system
escapeshellcmd
escapeshellarg
passthru
shell_exec
proc_open
proc_close
proc_terminate
proc_get_status
proc_nice
getmyuid
getmygid
getmyinode
putenv
getopt
sys_getloadavg
getrusage
get_current_user
magic_quotes_runtime
set_magic_quotes_runtime
import_request_variables
debug_zval_dump
ini_alter
dl
pclose
popen
stream_socket_client
stream_socket_server
stream_socket_accept
stream_socket_pair
stream_get_transports
stream_wrapper_restore
get_headers
mail
mb_send_mail
openlog
syslog
closelog
apc_add
apc_bin_dump
apc_bin_dumpfile
apc_bin_load
apc_bin_loadfile
apc_cache_info
apc_cas
apc_clear_cache
apc_compile_file
apc_dec
apc_define_constants
apc_delete_file
apc_delete
apc_exists
apc_fetch
apc_inc
apc_load_constants
apc_sma_info
apc_store
flock
pfsockopen
posix_kill
apache_child_terminate
apache_get_modules
apache_get_version
apache_getenv
apache_lookup_uri
apache_reset_timeout
apache_response_headers
apache_setenv
virtual
mysql_pconnect
socket_create
socket_create_pair
禁用的类:

SQLiteDatabase
SQLiteResult
SQLiteUnbuffered
SQLiteException
APCIterator

urlencode?

试试.

$url = 'http://api.map.baidu.com/direction?origin=latlng:24.481428,118.124813|name:测试起点&destination=latlng:24.503361,118.139877|name:测试终点&mode=driving&region=厦门&output=html';$newurl = getMapUrl($url);echo $newurl;function getMapUrl($url){    file_get_contents($url);    $result = $http_response_header;    if($result){        foreach($result as $val){            if(substr($val,0,10)=='Location: '){                return str_replace('Location: ','', $val);            }        }    }    return '';}
ログイン後にコピー
ログイン後にコピー


禁用的函数:

php_real_logo_guid
php_egg_logo_guid
readlink
linkinfo
symlink
link
set_file_buffer
exec
system
escapeshellcmd
escapeshellarg
passthru
shell_exec
proc_open
proc_close
proc_terminate
proc_get_status
proc_nice
getmyuid
getmygid
getmyinode
putenv
getopt
sys_getloadavg
getrusage
get_current_user
magic_quotes_runtime
set_magic_quotes_runtime
import_request_variables
debug_zval_dump
ini_alter
dl
pclose
popen
stream_socket_client
stream_socket_server
stream_socket_accept
stream_socket_pair
stream_get_transports
stream_wrapper_restore
get_headers
mail
mb_send_mail
openlog
syslog
closelog
apc_add
apc_bin_dump
apc_bin_dumpfile
apc_bin_load
apc_bin_loadfile
apc_cache_info
apc_cas
apc_clear_cache
apc_compile_file
apc_dec
apc_define_constants
apc_delete_file
apc_delete
apc_exists
apc_fetch
apc_inc
apc_load_constants
apc_sma_info
apc_store
flock
pfsockopen
posix_kill
apache_child_terminate
apache_get_modules
apache_get_version
apache_getenv
apache_lookup_uri
apache_reset_timeout
apache_response_headers
apache_setenv
virtual
mysql_pconnect
socket_create
socket_create_pair
禁用的类:

SQLiteDatabase
SQLiteResult
SQLiteUnbuffered
SQLiteException
APCIterator




兄弟,给力啊。100分都给你了。结贴,哈。
谢谢。

看的晚了,还找了一个,顺便分享。
private function getHeadersNew($url){ $ch= curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_NOBODY, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HEADER, 1); $f=curl_exec($ch); curl_close($ch); $h=explode("\n",$f); $r=array(); foreach( $h as $t){   $rr=explode(":",$t,2);   if(count($rr)==2 ){ $r[$rr[0]]=trim($rr[1]);} } return $r; } 
ログイン後にコピー


このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP データベースの操作 CakePHP データベースの操作 Sep 10, 2024 pm 05:25 PM

CakePHP でデータベースを操作するのは非常に簡単です。この章では、CRUD (作成、読み取り、更新、削除) 操作について理解します。

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

Cakephp4 で日付と時刻を操作するには、利用可能な FrozenTime クラスを利用します。

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

CakePHP バリデータの作成 CakePHP バリデータの作成 Sep 10, 2024 pm 05:26 PM

Validator は、コントローラーに次の 2 行を追加することで作成できます。

CakePHP のロギング CakePHP のロギング Sep 10, 2024 pm 05:26 PM

CakePHP へのログインは非常に簡単な作業です。使用する関数は 1 つだけです。 cronjob などのバックグラウンド プロセスのエラー、例外、ユーザー アクティビティ、ユーザーが実行したアクションをログに記録できます。 CakePHP でのデータのログ記録は簡単です。 log()関数が提供されています

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

See all articles