2020年10月21日水曜日

mb_strimwidth -指定した幅で文字列を丸める

こんばんは、こうちゃんです。

文字操作系の関数でとても重宝される、
文字列を希望の長さに丸められる便利な関数です。

mb_strimwidth

対象文字列を指定バイト数で切って、末尾に指定文字をつなぎ、丸める関数です。


使い方

string mb_strimwidth ( string $str , int $start , int $width [, string $trimmarker [, string $encoding ]] )

str
丸めたい文字列。

start
開始位置のオフセット。文字列の始めからの文字数 (最初の文字は 0) です。

width
丸める幅。

trimmarker
丸めた後にその文字列の最後に追加される文字列。

encoding
encoding パラメータには文字エンコーディングを指定します。省略した場合は、内部文字エンコーディングを使用します。


返り値
丸められた文字列を返します。 trimmarker が設定された場合、 trimmarker が丸められた文字列に追加されます。


例:
echo mb_strimwidth("Hello World", 0, 10, "...";
// Hello W... と出力します

サイトなどで長い文章を取得、表示する際や、
ブログの記事一覧で概要を表示させる時などに大変便利です。

ぜひご活用ください。

こうちゃん

2020年10月3日土曜日

配列をランダムに再配置shuffle

こんばんは、こうちゃんです。

配列を作ったあとに、事情により要素をランダムに変えたい場合などがあるかと思われます。
そんな時に役立つのがshuffleです。

shuffle ( array &$array ) : bool

この関数は、配列をシャッフル (要素の順番をランダムに) します。 この関数が使う疑似乱数生成器は、暗号学的な使い方には適していません。

使い方例
<?php
numbers = range(1, 20);
shuffle($numbers);
foreach ($numbers as $number) {
    echo "$number ";
}
?>

注意: この関数は、 array パラメータの要素に対して新しいキーを割り当てます。 その際、単純にキーを並べ替える代わりに、 すでに割り当てられている既存のキーを削除してしまいます。


こうちゃん

2020年9月24日木曜日

文字列をランダムにシャッフルstr_shuffle

こんばんは、こうちゃんです。

文字列の文字をランダムに替える関数、str_shuffleです。
そんなに用途はないですが、パスワード生成の際にランダム文字列を作る際などに使われるかと。

str_shuffle ( string $str ) : string
str_shuffle() は文字列をシャッフルします。 考えられるすべての順列のうちのひとつを作成します。

使用例:
<?php
$str = 'abcdef';
$shuffled = str_shuffle($str);

// bfdaec のような文字列を返します
echo $shuffled;
?>

こうちゃん

2020年3月31日火曜日

昨日の日付取得

こんばんは、こうちゃんです。

前回解説したdate()関数を使って、昨日、を取得する方法です。

今日、ならば、date('Y/n/j');というように、date()関数のみで表現できますが、
昨日を表す場合、タイムスタンプを引数に使い、
strtotime()関数を使います。

<?php
echo date('Y-m-d', strtotime('-1 day'));
?>

とすれば、本日から、-1day、つまり、昨日、が取得できます。


こうちゃん

2020年1月9日木曜日

今日を表示するdate()関数

こんばんは、こうちゃんです。

PHPにおける日時取得は、基本的にdate()関数ですべて済みます。

使い方が、
date('フォーマット')
となっており、このフォーマットの書き方で、日付や時刻など、何を取得するかを決められます。
使い方の詳細な説明は、公式サイトにて

date - PHP.net

紹介されておりますが、まずは実践編として、「今日」、を取得、表示したい場合の方法です。

パラメータ文字が、
Yで4桁の西暦
nが月(mにすると07のように0で埋めて2桁に)
jが日(dにすると07のように0で埋めて2桁に)
ですので、今日を取得する場合、
<?php
$date = date('Y/n/j');
?>
などとすれば、2020/1/9 といった本日の日付情報が取得できます。
これをサイト中に埋め込んだりすれば、例えば、

こんにちは、本日は <?php echo date('Y/n/j');?> です。

みたいに、サイト上部のあいさつに日付表示を入れたりすることもできます。

シンプルながらこんな使い方で日付を取得できます。
また、この日付の区切りの/は-に変えたり、
date('Y年n月j日');
として、2020年1月9日のように漢字交じりで表示することもできます。

こうちゃん