今日私たちが提供するのは、毎日の星占いをクエリする機能です。この機能は非常に簡単で、星座の名前と識別子 (「+」記号など) を WeChat プラットフォームに入力すると、バックグラウンド プログラムがこの識別子と照合します。対応する関数を呼び出します。
具体的な処理: 1. 文字列分割関数explode(w3school)を使用して星座名を取得します。
2. 星座名と対応する星座番号を一致させます。
3. この番号を対応する API に渡します。
4. API から返されたデータを XML 形式で受信します。
5. データを XML 形式で処理します。
6. 結果を生成します。
私は制作初心者なので、5番目のステップに時間を費やしました。 API によって返される XML 形式は
です。
[html]
3ランク>
<値>値>
アイテム>
3ランク>
<値>値>
アイテム>
2ランク>
<値>値>
アイテム>
……
2013-11-16
まず、file_get_contents() 関数を使用して、API から返されたデータ ファイルを文字列に読み取ります。次に、simplexml_load_string() 関数を使用して、XML 文字列をオブジェクトにロードします。次に、このオブジェクトを使用して各 XML タグのデータを読み取りますが、ここで問題が発生しました。返される XML 形式のファイルはすべて
です。
[html]
アイテム>
この形式では、「Object」->item->title メソッドを使用して最初のアイテムのデータのみを読み取ることができます。最終的に使用したメソッドは次のとおりです。
[php]
foreach ($xml->item as $th) {
$content_title[$i] = $th->title;
$content_rank[$i] = $th-> ランク
$content_value[$i] = $th->value;
$i++
} }
このオブジェクト「$xml」をトラバースし、自動インクリメント変数 i を使用して、データの各グループを配列に格納します。
foreach ステートメントは、配列をループするために使用されます。
ループが実行されるたびに、現在の配列要素の値が value 変数に割り当てられます (配列ポインターは 1 つずつ移動します)。
文法
[php]
foreach (値としての配列)
{
実行されるコード
}
例
次の例は、指定された配列の値を出力するループを示しています。
[php]
$arr=array("1", "2", "3");
foreach ($arr を $value として)
{
echo "値: " . $value . "
}
?>
プログラムのソースコードは次のとおりです:
[php]
関数 xingzuo($keyword) {
if (make_xingzuo($keyword)) {
$keyword = make_xingzuo($keyword);
$qurl = 'http://api.uihoo.com/astro/astro.php?fun=day&id=' . $keyword';
$content = file_get_contents($qurl);$xml = simplexml_load_string($content);
$i = 0;
foreach ($xml->item as $th) {
$content_title[$i] = $th->title;
$content_rank[$i] = $th-> ランク
$content_value[$i] = $th->value;
$i++
} }
"星占い: n 総合運勢:" . $content_rank[1] . "星 n の運勢:" .金運:" . $content_rank[3] . "スター n 健康指数:" . $content_value[4] . "nラッキーカラー:" . $content_value[6] . "nラッキーナンバー:" . $content_value[7] . " nスピードデート星占い:" . $content_value[8] . "n包括的な概要:" . $content_value[9];
}
その他
return "エディターは入力された星座を認識しません>_
";
}
関数 make_xingzuo($keyword){
$arr = array('Aries' => '0','Taurus' => '1','Gemini' => '2','Cancer' => '3','Leo ' => '4'、'乙女座' => '6'、'天秤座' => '7' ' => '8'、'山羊座' => '10'、'魚座' =>
if(strtr($keyword, $arr)0){
strtr($keyword, $arr) を返します
}
else {
は false を返します。
}
}