3

私はphpについては平凡で、XMLについては無知です...詳しく説明していただければ、学習に役立ちます。

PHPプログラミングを使用して、このリンクへのスクリプトを実行しようとしています... http://ws.geonames.org/postalCodeSearch?postalcode=VARIABLE_ZIP&country=US。VARIABLE_ZIPは、上記のリンクの情報を送信するフォームに入力された実際の郵便番号です。そのリンクの出力は、私のWebサイトのどこにも表示したくないXMLページを作成します。

私がやりたいのは、XMLデータの緯度と経度の値をphp内の変数としてキャプチャし、それらをデータベースに保存することです。

1)フォームがあります

2)ユーザーが自分の郵便番号をフォームに入力します

3)フォームの送信時:郵便番号変数が追加されたリンクによって生成されたXMLデータをキャプチャするコードが必要です:http ://ws.geonames.org/postalCodeSearch?postalcode = 90210&country = US (これは必要ありません)どこにでも表示するページ、データをキャプチャしたいだけです)

4)これらの変数をPHPに戻し、データベースに保存できるようにしたい

*ステップ3は私には未知のプロセスです。これは、XMLコードが別のページで生成するものです...(ページを表示したくない):

= = = = =

<geonames>
<totalResultsCount>1</totalResultsCount>
<code><postalcode>90210</postalcode>
<name>Beverly Hills</name>
<countryCode>US</countryCode>
<lat>34.09011</lat>
<lng>-118.40648</lng>
<adminCode1>CA</adminCode1>
<adminName1>California</adminName1>
<adminCode2>037</adminCode2>
<adminName2>Los Angeles</adminName2>
<adminCode3/><adminName3/>
</code>
</geonames>

= = = = =

誰かが私に次の情報を提供してくれましたが、それを実行して必要な変数を解析する方法がわかりません。

<?php
$pc = $_POST['postalcode'];
$c = $_POST['country'];
$xml = file_get_contents("http://ws.geonames.org/postalCodeSearch?postalcode={$pc}&country={$c}");
file_put_contents("geopost_{$pc}_{$c}.xml",$xml);
?>

ご協力いただきありがとうございます!

4

3 に答える 3

6

最善の方法は、リンクに直接移動して (私は自分の郵便番号と国を使用しました)、XML がどのように構造化されているかを確認し、SimpleXMLElement を使用して必要なデータを取得するツリーを移動することです。この例では、緯度と経度を取得します。

<?php
$pc = $_POST['postalcode'];
$c = $_POST['country'];
$xml = new SimpleXMLElement(file_get_contents("http://ws.geonames.org/postalCodeSearch?postalcode=".$pc."&country=".$c));
$lat = $xml->code->lat;
$lng = $xml->code->lng;
echo "Lat: $lat<br/>Lng: $lng";
?>

これは、これらの値の保存を開始するのに役立ちます。

于 2012-05-14T15:20:29.263 に答える
2

ステップ 3 は、これらの単純な XML の例で非常にうまく概説されている PHP で xml を処理することです。

于 2012-05-14T15:13:33.997 に答える
1

受信した XML データを解析して読み取る方法については、PHP のSimpleXMLを参照してください。

于 2012-05-14T15:13:18.020 に答える