String関数 2024年08月09日 01:38   編集
16進数表現の文字列をデコードする
$str = 'abあい';
$hex = bin2hex($str);
print $hex . "\n";
print hex2bin($hex);
実行結果は
6162e38182e38184
abあい
counter:277
String関数 2024年08月09日 01:27   編集
バイナリのデータを16進表現に変換する
$str = 'abあい';
print bin2hex($str);
実行結果は
6162e38182e38184
counter:269
PCRE関数 2024年08月08日 23:37   編集
正規表現で文字列を分割する
文字列を分割する場合、str_splitでは全角文字の入った文字列をうまく分割できないのでpreg_splitを使う
$str = 'abあい';
foreach (preg_split("//u", $str, -1, PREG_SPLIT_NO_EMPTY) as $s) {
print "$s<br>";
}
区切り文字のあとのuフラグはマルチバイト文字を処理する際に必要なものらしい
実行結果は
a
b

counter:254
配列関数 2024年07月22日 17:46   編集
コールバック関数を使用して、配列の要素をフィルタリングする
array_filter( 配列 [,コールバック関数][,モード])
$array = array(12, 'abc', 11.17, 0, '21de', '', -4);
print_r(array_filter($array, 'is_int'));
実行結果は
Array
(
[0] => 12
[3] => 0
[6] => -4
)
続きを読む
counter:428
配列関数 2024年07月22日 17:16   編集
配列の全ての値を返す
$array = array(12=>'abc', '11.17'=> 0, '21de'=> -56);
print_r(array_values($array));
キーは連続した数値になる
Array
(
[0] => abc
[1] => 0
[2] => -56
)
counter:335
配列関数 2022年10月02日 14:39   編集
入力配列から単一のカラムの値を返す
ということだが、多次元配列から特定のキーの値だけを取り出して新たな配列を作ることができる。例えば
$data['Y4vC8DOE'] = array('title'=>'strpos', 'category'=>'String関数');
$data['O3LPSQ4p'] = array('title'=>'preg_match', 'category'=>'PCRE関数');
$data['D7gFDJzL'] = array('title'=>'date_create', 'category'=>'日付・時刻関数');
$data['zQVvImlQ'] = array('title'=>'array_multisort', 'category'=>'配列関数');
$data['EJTCFyBt'] = array('title'=>'is_array', 'category'=>'変数操作関数');
のような多次元配列$dataがある場合、
$array = array_column($data, 'category');
print_r($array);
の結果は
続きを読む
counter:804
プログラム実行関数 2022年07月15日 17:47   編集
外部プログラムを実行する。
第2引数に変数を指定すると、そこに外部プログラムの実行結果が保存される。
以下はコマンドプロンプトでdirコマンドを実行した結果が変数$outに保存される。(Windows環境の場合)
$command = "dir";
exec($command, $out);
print join("\n", $out);
counter:832
PCRE関数 2022年07月15日 17:09   編集
正規表現の特殊文字の前にバックスラッシュを挿入する。
print preg_quote('[abc].de+fg/^|h{}#12:34');

\[abc\]\.de\+fg/\^\|h\{\}\#12\:34
となる。対象文字列は
.\+*?[^]$(){}=!<>|:-#
/は正規表現の特殊文字ではない。
counter:855
PHPオプション/情報関数 2022年07月15日 16:39   編集
指定したモジュールの関数名を配列として返す。モジュール名を取得するget_loaded_extensionsを併用して
foreach (get_loaded_extensions() as $module) {
print "<h1>$module</h1>";
print_r(get_extension_funcs($module));
}
を実行すると、各モジュールで使用できる関数名が得られる。
counter:981
PHPオプション/情報関数 2022年07月15日 16:10   編集
全てのモジュールの名前を配列として返す
print_r(get_loaded_extensions());
counter:933
PHPオプション/情報関数 2022年07月15日 15:47   編集
PHPの設定情報を出力する。printやecho使わず
phpinfo();
だけで出力される。
counter:933
マルチバイト文字列関数 2021年04月26日 16:43   編集
指定した長さで文字列を丸める。
mb_strimwidth(文字列, 開始位置, 丸める文字列の長さ, 末尾を置き換える文字列[, 文字エンコーディング])
echo mb_strimwidth('PHPコード',0,8,'...');
の実行結果は
PHPコ...
4番目のパラメータは、丸められた文字列の末尾に追加されるのではなく、丸められた文字列の末尾を置換する。'...'のように3文字分の文字列を指定すると、丸められた文字列の末尾3文字分が置換されることになる。
counter:1,187
マルチバイト文字列関数 2021年04月26日 16:24   編集
文字列の長さを返す。半角文字は1、 全角文字は2として数える。
echo mb_strwidth('PHPコード');
の結果は
9
ちなみに
echo mb_strlen('PHPコード') .'<br>';
echo strlen('PHPコード');
だと
6
12
となる。
counter:1,135
2021年04月21日 20:36   編集
  • 左側に表示されるメニューをカスタマイズしたい場合は、タイトルが「Menu」という名前のページを作って下さい。
    Menuにはたとえば
    [[recent]]
    などと記載すると新着順に記事が表示されます。そのほかlistupプラグインなどを使ってメニューに表示されるインデックスをカスタマイズすることができます。
  • プラグインの詳細を見るには、「プラグインヘルプ」などのタイトルのページを作成し、
    [[plugins]]
    と記述して下さい。
  • ページ記述のヘルプは「ヘルプ」というタイトルのページに
    [[help]]
    と記述して下さい。

  • 初期設定では最新の記事がトップページに表示されますが、トップページを固定するには「FrontPage」というタイトルのページを作ってください。
  • Sidebar」というタイトルのページに書かれた内容はサイドバー部分に表示されます。
  • 「Footer」というタイトルのページに書かれた内容はフッター部分に表示されます。
counter:2,257
2021年04月21日 20:16   編集
ver.1.192
2024.11.08
function category_colorを変更。edit_category_colorプラグインを追加。bbsプラグインを修正。
ver.1.191
2024.09.19
プラグインファイルを整理。
ver.1.190
2024.09.02
./lib/holiday.phpを更新。
ver.1.189
2024.08.20
管理画面で管理者用パスワード変更ができないバグを修正。
function file_upload() とfunction thumb() を./lib/file_upload.phpに移動。
ver.1.188
2024.07.30
管理画面にブルートフォースログのリンクを追加。
ver.1.187
2024.07.21
bbsプラグインの添付ファイル処理を修正。
ver.1.186
2024.07.19
comment3プラグインのデータ保存先を修正。
ver.1.185
2024.06.21
アクセスカウンター処理修正。bbs.php access.php修正
ver.1.184
2023.04.15
PHP8.2.4対応 term.php search_image.php bbs.php calendar.php修正
ver.1.183
2022.12.30
カテゴリーを指定した際、該当記事数が1ページの表示件数を超えても繰り越しリンクが表示されていなかったのを修正。
ver.1.182
2022.10.15
スキンファイル編集機能追加
ver.1.181
2022.10.11
cssファイルの構成を変更
ver.1.180
2022.10.09
comment、comment2プラグインに管理者用画面を追加。
ver.1.179
2022.10.07
access、calendar、diff、files、footnote、get_id、plugins、searchプラグイン修正。
ver.1.178
2022.10.05
アクセスカウンター処理修正。
ver.1.177
2022.10.04
bbsプラグインを改修。
ver.1.176
2022.09.29
重複部分を整理。
ver.1.175
2022.09.23
files、listup、pluginsプラグインを改修。
ver.1.174
2022.09.11
calendarプラグインを改修。
ver.1.173
2022.09.06
管理者画面でのinit.php編集処理を修正。
ver.1.172
2022.08.29
bbs_countプラグインを改修。
ver.1.171
2022.08.14
アウトラインの表示を変更。
ver.1.170
2022.07.13
カウンター処理修正。
ver.1.169
2022.06.07
CSSの記述ミスなどを修正。
ver.1.168
2022.05.26
clendar、help、search_imageプラグインを改修。
ver.1.167
2022.05.19
選択メニューの表示をCSSで設定するように変更。
ver.1.166
2022.05.10
添付ファイルのナンバリング方式を変更。添付ファイルの表示位置を簡易指定できるように修正。
ver.1.165
2022.04.27
bbsプラグイン、bbs_countプラグイン改修。
ver.1.164
2022.03.27
bmpファイルのサムネール作成に対応。calendarプラグイン改修。
ver.1.163
2022.03.22
PHP8でエラーやアラートが出るのを修正。
ver.1.162
2021.10.20
非管理者モードで記事表示するときは、管理者用記事のリンクは表示しないが、
通常の記事内に管理者用記事のタイトルがあった場合リンクに置換していたのを修正。
ver.1.161
2021.09.22
記事内でdivタグを閉じ忘れるとレイアウトが崩れるのを修正。
ver.1.160
2021.09.15
bbsプラグインの投稿数をカウントするbbs_countプラグインを追加。
ver.1.159
2021.09.13
tmplディレクトリ内のテンプレートファイルと同名のcssが存在すれば、style.cssを上書きするよう変更。
ver.1.158
2021.09.09
bbsプラグイン修正。記事のデフォルト文字列を指定できるよう修正。
ver.1.157
2021.09.08
comment3プラグインを修正。
ver.1.156
2021.08.26
クッキーの処理を修正。search_image、navi、listup、categories、access、recentプラグイン修正。
新着順の記事名リストの数を変更できるように修正。
ver.1.155
2021.08.24
gifファイルのサムネール作成に失敗するのを修正。login.phpを読み込むよう変更。
ver.1.154
2021.08.02
Firefoxでリンクが効かないケースがあるのを修正。style.css編集。
ver.1.153
2021.07.05
bbsプラグインを改修。
ver.1.152
2021.06.22
file_upload関数内の記述ミスを修正。
パスワード認証時にブルートフォース攻撃対策処理を追加。login関数追加。
ver.1.151
2021.06.21
categoriesプラグイン修正。ヘッダーに表示するタイトルを選択できるように修正。
ver.1.150
2021.05.05
テンプレートの処理を修正。
ver.1.149
2021.04.30
readmoreプラグインを追加。
ver.1.148
2021.04.28
登録した拡張子のファイルのみアップロードできるようにした。
ファイルアップロード時にMIMEタイプチェックを行うようにした。
ver.1.147
2021.04.24
記事編集フォームをflexボックスによるレイアウトに変更
ver.1.146
2021.04.22
history.php、listup.phpを修正。
ver.1.145
2021.04.18
更新履歴の表示を変更。recent.php、bbs.phpを修正。
ver.1.144
2021.04.15
bbsプラグインで過去ログが表示されないバグを修正。
添付ファイルの表示順、レイアウトを調整。
ver.1.143
2021.04.14
style.cssの記述ミスを修正。bbsプラグインを修正
ver.1.142
2021.04.13
categoriesプラグインを改修。
ver.1.141
2021.04.11
カテゴリープルダウンリストと記事に表示されるカテゴリーの色がずれていたのを修正。
Sidebarという名前の記事を作成すると、サイドバーに表示されるように修正。
ver.1.14
2021.04.07
レスポンシブデザインに対応。
ver.1.138
2020.03.31
tag_convert関数修正。calendarプラグイン修正。
ver.1.137
2020.03.25
comment2プラグイン修正。
ver.1.136
2020.03.24
bbs、recentプラグイン修正。
ver.1.135
2020.03.23
bbs、comment、comment2、comment3プラグイン修正。
ver.1.134
2020.03.18
headerに記述したJavaScriptを外部ファイルに移動。
ver.1.133
2020.03.17
管理者モードが解除できないバグを修正。bbsプラグインにスライドロック機能追加。
ver.1.132
2020.03.12
記事に管理者モードを追加
ver.1.131
2020.03.11
$post_mode でだれでも編集可能モードにしてロックすると、
管理者パスワードでないと編集できなくなってしまうバグを修正。
ver.1.13
2018.07.09
カウンター機能で、同じホストからの連続アクセスをカウントしないオプションを追加。
ver.1.12
2018.06.12
検索結果で該当記事がない場合、フォームが消えるのを修正。
ver.1.11
2018.05.25
PHP7.2.0対応
ver.1.10
2017.12.28
プラグインが配列形式で値を返す場合、2個目の要素を記事末尾に追加するように修正。(脚注プラグイン対応)
ver.1.09
2017.04.10
古い履歴ファイルを削除するよう修正。
ver.1.08
2017.03.22
外部スタイルシートをブラウザ表示用と印刷用に分割。
ver.1.07
2017.03.01
プラグインの記述を間違えて致命的なエラーが出る場合、
プラグインの実行をキャンセルしてエラーメッセージを表示するようにした。
ver.1.06
2017.02.27
記事中のURLをオートリンクできるようにした。
ver.1.05
2017.01.31
誰でも投稿可モードの場合、管理者パスワードで記事をロックできるようにした。
誰でも投稿可モードで使用できるタグを設定できるようにした。
ver.1.04
2017.01.24
投稿フォームの「プレビュー」ボタンを押したときのプレビュー表示を調整。
ver.1.03
2017.01.23
カテゴリーの色がそろわないケースがあるのを修正。
ver.1.02
2017.01.17
記事を編集するとバックアップを作成するように修正。
合わせてdiff(差分表示)プラグインを追加。
ver.1.01
2017.01.12
別名が索引メニューで表示されていなかったのを修正。
ver.1.0
2016.12.26
とりあえず完成。
counter:1,339
配列関数 2021年04月15日 17:09   編集
別名:rsort
値でソートする。キーと値の関係は維持されない。連想配列に使用した場合、キーはソートした値の順番の数値に置き換えられる。
$fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple");
sort($fruits);
foreach ($fruits as $key => $val) {
echo "fruits[" . $key . "] = " . $val . "\n";
}
の結果は
fruits[0] = apple fruits[1] = banana fruits[2] = lemon fruits[3] = orange 
counter:1,261
配列関数 2021年04月15日 17:04   編集
別名:krsort
キーと値の関係を維持して、キーでソートする。ksortは昇順、krsortは降順
$fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple");
ksort($fruits);
foreach ($fruits as $key => $val) {
echo "$key = $val\n";
}
の結果は
a = orange b = banana c = apple d = lemon 
counter:1,183
配列関数 2021年04月15日 16:56   編集
別名:arsort
キーと値の関係を維持して、値でソートする。asortは昇順、arsortは降順
$fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple");
asort($fruits);
foreach ($fruits as $key => $val) {
echo "$key = $val\n";
}
の結果は
c = apple b = banana d = lemon a = orange
counter:1,032
String関数 2021年01月05日 12:47   編集
文字列の最後から空白や改行を削除した文字列を返す。
$str = "ABC\n";
$str = rtrim($str);
if ($str == 'ABC') {
print $str;
}
counter:1,306