【PHP】末尾のスラッシュ「/」を削除する、追加する

  • 投稿 : 2016-11-04

末尾のスラッシュ「/」を削除する

$url = rtrim( $url, '/' ) . "/index.html";
rtrim( $url, '/' ) で、末尾にスラッシュがあれば削除されます。なければそのままです。

PHP: trim - Manual

rtrimは、何も指定しないと右側の空白をトリムするわけですが、指定するとその文字でトリムしてくれます。

WordPressでは標準で関数が用意されている

//末尾に「/」があれば削除する
function untrailingslashit( $string ) {
    return rtrim( $string, '/' );
    //return rtrim( $string, '/\\' );
}

//末尾に「/」を追加する
function trailingslashit( $string ) {
    return untrailingslashit( $string ) . '/';
}

/wp-includes/functions.phpで定義されています。
実際のコードは、return rtrim( $string, '/\\' );となってますが、たぶんWindowsのフォルダ区切りの「¥」も削除するようなロジックになっているからだと思われます。

$url = untrailingslashit($url) . "/index.html";

こんな感じで書けます。

何も考えずに、untrailingslashitをすればよい気がする

$url = rtrim( $url, '/' ) . "/index.html";
$url = untrailingslashit($url) . "/index.html";

パスやURLで末尾にスラッシュ「/」があろうとなかろうと、機械的に上記の処理を置けばよいのでは?と思う。


スポンサーリンク