MyMiniCity … オススメURIの表示をでっち上げ。

なんだかあっという間に街が成長して、
ずっと産業を興し続けてると今度は交通が足りなくなったりして、
でも張り替えも面倒だしそんなに簡単に新しいURIに誘導できるわけではないわけで…
今日どのURIにアクセスすればいいのかあらかじめ教えて欲しいわ…

と言うことで、なんとなくでっち上げました。PHPで。

getRecommendUri();?>

お隣の街の今日のオススメURI。

<a href="” target=”_blank”>crossbreed – MyMiniCity


プログラム内容

でっち上げなのであんまり深くは考えないように(苦笑)
本当はJavaScriptでやれば良いんだろうけど、まずは得意なヤツで。

一応、ソース晒しておきます。

mmc_xml.php

<?php
class mmcXml
{
var $city_uri;
var $xml_data;
var $city_data = array();
var $recommend_uri;

function getRecommendUri(){return $this->recommend_uri;}

function setCityUri($city_name){$this->city_uri = 'http://' . $city_name . '.myminicity.com';}
function setXmlData(){$this->xml_data = file_get_contents($this->city_uri . '/xml');}
function setCityData()
{
$parser = new XML_Unserializer(array('parseAttributes' => true));
$parser->unserialize($this->xml_data);
$this->city_data = $parser->getUnserializedData();
}
function setRecommendUri()
{
$env = array(
'ind' => $this->city_data['unemployment'],
'tra' => $this->city_data['transport'],
'sec' => $this->city_data['criminality'],
'env' => $this->city_data['pollution'],
);
krsort($env);
$p = array_shift(array_keys($env));
$this->recommend_uri = $this->city_uri . '/' . $p;
}

// Conctructor

function mmcXml($city_name)
{
require_once './Unserializer.php';
$this->setCityUri($city_name);
$this->setXmlData();
$this->setCityData();
$this->setRecommendUri();
}
}
?>


実行側

<?php
require_once './mmc_xml.php';
$m = new mmcXml('nobodyplace');
var_dump($m->getRecommendUri());
?>


ダウンロード


中身は適宜書き換えてください。
(書き換える場所が分からない人は諦めてください)

ダウンロード


内部処理には、PEAR/XML_SerializerのXML_Unserializerを使用。
で、市民の要求をXMLで取得し、その一番上をURIに反映させているってことで。

適当な仕様なので、街の発展が遅れていて市民の要求するURIに
まだ対応していなかったりしますが、その辺はご愛敬ってことで…



追記

さくらインターネットの環境の関係上、PHP4向けに作られています。
PHP5でも動きますけども。



追記:というか。

弾さんのAPI使えばJavaScriptで普通にできるんだけどね…

404 Blog Not Found:今日のMyMiniCity – 2007.12.21 + 野良API