[php]半角スペースを任意の文字列に置換したい

JavaScript&php

phpで半角スペースを任意の文字列に置換したかったが調べても意外とパッと出てこなかったので備忘も兼ねて記載します。

php関数:str_replaceで” “を指定する。

例えば日付を表すこんな文字列があったとします。

"20240217 12:00:00"

日付と時刻の間に半角のスペースがありますが、このスペースをstr_replace関数※を使って区切り文字の”T”に変えたいと思います。
※phpで文字列の置換を行ってくれる関数です。

$str = "20240217 12:00:00";
$str = str_replace(" ", "T", $str);
echo $str;   

→ 20240217T12:00:00 

はい意外とシンプルでしたね。

半角スペースは「” “」の指定だけで良いみたいです。

ちなみにstr_replaceは該当するもの全てを置換しますので半角スペースが複数あった場合は全て置換してしまいます。

php関数:preg_replaceで回数を指定して置換する。

その場合はpreg_replace関数を使いましょう。

こんな感じです。

$str = "20240217 12: 00:00";
$str = preg_replace("/ /", "T", $str, 1);
echo $str;   

→ 20240217T12: 00:00 

置換する回数の指定は第4引数の1で指定しています。また、str_replaceと違って置換元の文字列を/(スラッシュ)で囲む必要があります。

用途に応じて使い分けると良いかと思います。

コメント

タイトルとURLをコピーしました