人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

こちらの質問の続きですが
http://q.hatena.ne.jp/1311135822

チームIDごとに振られた番号をもとに「ID.php」としたリンクをチーム名挿入させる方法と
そのID.phpを生成する方法を教えてください。
htmlの結果は
<table>
<tr>
<td width="36">rank</td>
<td width="211">チーム名</td>
<td width="63">&nbsp;</td>
<td width="65">&nbsp;</td>
<td width="61">ポイント</td>
</tr>
<tr>
<td width="36">1</td>
<td width="211"><a href="123456.php">ABCDE</a></td>
<td width="63">横浜市</td>
<td width="65">青葉区</td>
<td width="61">1.37500</td>
</tr>
</table>
(以下データがあるだけ続く)

と表示したいのですが。。
よろしくお願いします。

●質問者: vfr6822
●カテゴリ:ウェブ制作
✍キーワード:HTML PHP データ ポイント リンク
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● じゅぴたー
●0ポイント

htmlヘッダ部分は省略しています。

<?php
$xml_str = file_get_contents('./sample.xml');
$xml_str =<<< EOD
<?xml version="1.0" encoding="UTF-8"?>
<aaa age_limit="LL">
<rank point="1.37500" order="1"> <team area3="青葉区" area2="横浜市" area1="神奈川県" email="" url="" name="ABCDE" id="123456"/>
</rank>
<rank point="1.27500" order="1"> <team area3="青葉区" area2="横浜市" area1="神奈川県" email="" url="" name="FGHIJ" id="789012"/>
</rank>
<rank point="1.97500" order="1"> <team area3="赤羽区" area2="川崎市" area1="神奈川県" email="" url="" name="FGHIJ" id="989012"/>
</rank>
</aaa>

EOD;

$aaa = new SimpleXMLElement($xml_str);

$html = <<< EOD
<table>
<tr>
<td width="36">rank</td>
<td width="211">チーム名</td>
<td width="63">&nbsp;</td>
<td width="65">&nbsp;</td>
<td width="61">ポイント</td>
</tr>
EOD;

$cnt = 0;
foreach ($aaa->rank as $rank) {
$cnt++; # ランキング順位用
# 必要な値を変数に代入します。
$order = $rank['order'];
$point = $rank['point'];
$area3 = $rank->team['area3'];
$area2 = $rank->team['area2'];
$area1 = $rank->team['area1'];
$id = $rank->team['id'];
$name = $rank->team['name'];

$html .=<<< EOD
<td width="36">{$cnt}</td>
<td width="211"><a href="{$id}.php">{$name}</a></td>
<td width="63">{$area2}</td>
<td width="65">{$area3}</td>
<td width="61">{$point}</td>
</tr>

EOD;
}

$html .= "<table>\n";
echo $html;
?>
◎質問者からの返答

ありがとうございました。とても参考になりました。


2 ● tobeoscontinue
●100ポイント ベストアンサー

前回に引き続いて同じコードです。

<?php
$xml = simplexml_load_file("./sample.xml");

$hdr = array("rank","チーム名","&nbsp;","&nbsp;","ポイント");
$wth = array(36, 211, 63, 65, 61);
$htd = array();
foreach ($hdr as $k=>$v) {
 $htd[] = array(' width="'.$wth[$k].'"',$v);
}

$td = array($htd);
$no = 0;
foreach($xml->rank as $rank) {
 $url = '<a href="'.$rank->team["id"].'.php">'.$rank->team["name"].'</a>';
 $td[] = array(++$no, $url,$rank->team["area2"],$rank->team["area3"],$rank["point"]);
}

echo "<html><body><table>\n";
foreach ($td as $r) {
 echo "<tr>\n";
 foreach ($r as $l) {
 list($attr,$v) = is_array($l) ? $l : array('',$l);
 echo " <td".$attr.">".$v."</td>\n";
 }
 echo "</tr>\n";
}
echo "</table></body></html>";

foreach($xml->rank as $rank) {
 $contents = '<html><head><title>'.$rank->team["name"].'</title></head>'.
 '<body>チーム:'.$rank->team["name"].'</body></html>';
 file_put_contents($rank->team["id"].'.php', $contents);
}

?>

>「ID.php」としたリンクをチーム名挿入させる方法

$rank->team["name"]の部分を

'<a href="'.$rank->team["id"].'.php">'.$rank->team["name"].'</a>'

に替えます。

コードでは長くなるので一旦$urlに代入してます。

>そのID.phpを生成する方法

ファイルを出力する場合はfile_put_contentsが便利です。

(同じく読み込む場合はfile_get_contents)

コードではダミーの内容を$contentasに入れて出力しています。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ