アプリ版:「スタンプのみでお礼する」機能のリリースについて

PHP5.2.4、OSはwindowsXP、xamppの環境で試しています。

次のようにパスの区切りをDIRECTORY_SEPARATORで指定して、要素を分割して取得したいのですが、
これだと分割できません。

$str = 'C:\dir\file.php';
$tips = split('/'.DIRECTORY_SEPARATOR.'/', $str);
//$tips = split('\\', $str);
print_r($tips);//Array ( [0] => C:\dir\file.php )

'\\'だと
「Warning: split() [function.split]: REG_EESCAPE」
というエラーがでます。

どのように記述すれば良いのでしょうか?

A 回答 (1件)

Windows環境で確認してませんが、正規表現でなく文字列で分解することにするか、



$tips = explode(DIRECTORY_SEPARATOR, $str);

正規表現での分割にこだわるなら、\ は正規表現の特殊文字なのでクォートして、

$tips = preg_split("/".preg_quote(DIRECTORY_SEPARATOR)."/", $str);

preg_splitでなく非推奨関数のsplitを使いたければ、

$tips = split(preg_quote(DIRECTORY_SEPARATOR), $str);
$tips = split('\\\\', $str);
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
なるほど、たしかに文字列で分解できるわけなので
最初のやり方の方が良さそうですね。
参考になりました。ありがとうございます。

お礼日時:2010/12/31 15:20

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!