TOP ▲
itcore TOP プログラムパーツ
uRirekiDatalist キーワードの履歴から選択リスト(datalist)を生成する。 | itcore 2018年
PHP
関数
<?php
function uRirekiDatalist($file, $id) {
    if (file_exists($file)) {
        $data = file_get_contents($file);
    } else {
        $data = "";
    }
    $arr = explode("\n", $data);
    $html = "<datalist id=$id>\n";
    foreach ($arr as $keyword) {
        $html .= "<option value='".htmlspecialchars($keyword)."'>\n";
    }
    $html .= "</datalist>\n";
    return $html;
}
?>
テストプログラム
<?php include_once "uRirekiDatalist.func"; ?>
<?php
  $file = "uRirekiDatalist.func.dat";
  file_put_contents($file, "a\nb\nc");
  $id = "id1";
  $html = "<input type=text name=name1 value='' list=$id autocomplete=off>\n";
  $html .= uRirekiDatalist($file, $id);
  echo nl2br($html);
  echo nl2br(htmlspecialchars($html));
?>
実行結果
Warning : file_put_contents(uRirekiDatalist.func.dat): Failed to open stream: Permission denied in /var/www/www/htdocs/php_c/uRirekiDatalist_test.php on line 4
<input type=text name=name1 value='' list=id1 autocomplete=off>
<datalist id=id1>
<option value='a'>
<option value='b'>
<option value='c'>
</datalist>