いきおいでPHPを勉強する。その3
今のとこ余裕だったんだけど。
さっそく詰まりました。
関数コード生成フォーム
PHPコード
<?php // 選択リストの値を取得 $name = "param"; $selected_value = $_POST[$name]; // 定義済み変数を取得 $array = get_defined_functions(); asort($array["internal"]); // 配列から選択リストを作成する関数 // パラメータ:配列/選択リスト名/選択値 function disp_list($array, $name, $selected_value = "") { echo "<select size=\"20\" name=\"" . $name . "\">"; while (list($value, $text) = each($array)) { echo "<option "; if ($selected_value == $text) { echo " selected "; } echo " value=\"".$text."\">" . $text . "</option>"; } echo "</select>"; } // 入力内容を処理する $temp = "\$temp = %s();"; $temp_url = "http://www.php.net/manual/ja/function.%s.php"; $temp_link = "<a href=\"%s\" target=\"_blank\">%s</a>"; if (isset($_POST["param"])) { $param = $_POST["param"]; $result = sprintf($temp, $param); $result_url = sprintf($temp_url, str_replace("_", "-", $param)); $result_link = sprintf($temp_link, $result_url, $param); } else { $param = ""; } ?>
HTMLコード
<html> <head> <title>関数コード生成フォーム</title> </head> <body> <?php // ... // 上記PHPコード // ... ?> <form method="POST" action="<?php echo $_SERVER["PHP_SELF"]?>"> <table cellpadding="10"> <tr> <td>関数を選択:<br /> <?php echo disp_list($array["internal"], $name, $selected_value); ?> <input type="submit" value="作成" name="sub1"> </td> </tr> <tr> </tr> <tr> <td>作成されたコード:<br /> <textarea name="ta1" rows="3" cols="40"><?php echo $result ?></textarea> <p>PHPマニュアルへのリンク: <?php echo $result_link ?></p> </td> </tr> </table> </form> </body> </html>
実行結果
一旦保留。