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"> </td>
<td width="65"> </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>
(以下データがあるだけ続く)
と表示したいのですが。。
よろしくお願いします。
前回に引き続いて同じコードです。
<?php $xml = simplexml_load_file("./sample.xml"); $hdr = array("rank","チーム名"," "," ","ポイント"); $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に入れて出力しています。
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"> </td> <td width="65"> </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; ?>
前回に引き続いて同じコードです。
<?php $xml = simplexml_load_file("./sample.xml"); $hdr = array("rank","チーム名"," "," ","ポイント"); $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に入れて出力しています。
ありがとうございました。とても参考になりました。