• ベストアンサー

DIRECTORY_SEPARATORについて

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」 というエラーがでます。 どのように記述すれば良いのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.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);

takagoo100
質問者

お礼

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

関連するQ&A