PHPの質問です。

$base='/home';
$target="/home/test";

正規表現つかって、$base の部分をとりさりたいのですが、つまり test以下だけにする
どう記述するといいのでしょうか? 
下記のような記述をするといいというのを見たのですが、違うようです。

preg_replace("|/^" . urlencode($base) . "/|", '', $target);

回答の条件
  • URL必須
  • 1人2回まで
  • 13歳以上
  • 登録:2011/04/21 14:10:12
  • 終了:2011/04/21 15:18:17

ベストアンサー

id:deflation No.1

deflation回答回数1036ベストアンサー獲得回数1262011/04/21 14:25:05

ポイント100pt

基本的には以下のようにします。

<?php
$base='/home';
$target="/home/test";

$base_q = preg_quote($base, '/');
$str = preg_replace("/{$base_q}/", '', $target);
echo $str;
?>

testの前にあるスラッシュを含めて取り除きたいのであれば、

$base='/home/';

とするか、

$str = preg_replace("/{$base_q}\//", '', $target);

としてください。


参考「PHP&正規表現

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません