PHP の質問です、 「/user/local/www/a.png」上記文字列を、正規表現にてディレクトリとファイル名に分割する方法を教えてください。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2006/03/01 14:46:45
  • 終了:--

回答(4件)

id:PaulYamamoto No.1

Paul回答回数113ベストアンサー獲得回数22006/03/01 15:03:53

ポイント10pt

basenameとか

dirnameとかの関数ではだめですか?


どうしても正規表現が使いたいのであれば

ごめんなさい。m(_ _)mポイント不要です。

id:disca

ありがとうございます。

はい、正規表現でおねがいします。

2006/03/01 18:55:00
id:elcondor No.2

elcondor回答回数1ベストアンサー獲得回数02006/03/01 15:11:17

ポイント10pt

http://jp.php.net/manual/ja/funcref.php

PHP: 関数リファレンス - Manual

参考URLは、PHP公式サイト(のミラー)の関数リファレンスです。


正規表現を使用するならば、

$string = ”/user/local/www/a.png”;

$list = split(”/”, $string);

$filename = array_pop($list);

$dirname = implode(”/”, $list);

でできます。

但し、「ファイル名とディレクトリ名を得る」だけが目的ならば、関数basename()とdirname()を使用して、

$filename = basename($string);

$dirname = dirname($string);

でやった方が楽だしパフォーマンスもよいと思いますが。

id:disca

ありがとうございます。

2006/03/01 18:55:49
id:tezcello No.3

tezcello回答回数460ベストアンサー獲得回数692006/03/01 15:15:20

ポイント50pt

こんな感じでどうでしょか? ---引用符(’”)は半角になおして下さいね。


<?php

$var=’/user/local/www/a.png’;


preg_match(’/(^.+¥/)(.+)/’, $var, $result);


print ”[1] = $result[1]<br />¥n”;

print ”[2] = $result[2]<br />¥n”;

?>


ブラウザで見ると、

[1] = /user/local/www/

[2] = a.png


ローカルサーバ(PHP 5.0.3)で確認済み。他の文字列でもOKかは未確認ですが。

id:disca

求めいていた答えがありました。ありがとうございます。

2006/03/01 18:56:23
id:catsliving No.4

catsliving回答回数1ベストアンサー獲得回数02006/03/01 16:11:52

ポイント10pt

ファイル名:basename(’/user/local/www/a.png’);

ディレクトリ:dirname(’/user/local/www/a.png’);


本題とは違うのかもしれませんが、上記はどうでしょうか。

id:disca

みなさま、ありがとうございます。

回答を締め切りたいと思います。

2006/03/01 18:56:56

コメントはまだありません

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

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

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

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