[PHP]フォルダパスの末尾のスラッシュを削除する

Read More


フォルダパスの末尾にスラッシュがあるかないかわからないときがある。
スラッシュがあったときだけその末尾のスラッシュを削除する方法。

それにはrtrim()を使う。
preg_match()やpreg_replace()を使っても同じことはできると思う。


■フォルダパス末尾のスラッシュを削除する処理
<?php
$path = '/aaa/bbb/';
$path = rtrim($path, '/');
echo($path);
?>


■処理結果
> /aaa/bbb


rtrim()はそのまま使うとtrim()よろしく文字列の最後から空白を取り除くという挙動をするのだけど、
第2引数に取り除く文字を指定することができる。

この関数を使う場合注意しなくてはならない点は、
・フォルダパスに日本語が含まれる場合
だろうか。

まあ自分は日本語が含まれるフォルダパスを扱うようなシステムをそもそも組まないので特に問題はない。

気になる人は自分で調べて結果を教えてください。


あと、パス末尾のスラッシュが連続したスラッシュだった場合もスラッシュは全部消えちゃう。
こちらは特に注意すべき点ではない。



--
フォルダパスって意外と統一されてなくて、末尾に必ずスラッシュを付ける人もいれば、その逆でスラッシュを付けない人もいたりする。

そうなるとフォルダパスとファイル名を組み合わせたり、
フォルダパスと別の文字列を組み合わせて新たなフォルダパスを生成したりするときなどにちょっと困ったりする。

まあフォルダパス内でスラッシュが続けて2回あっても一応動くには動くのだけど、
状況によっては動かないことがあるのでそのためにも上記のようなプログラムで常に対処しておきたいところ。