MyMiniCity踏んでください!!

ただいま絶賛MyMiniCity参加中です.是非リンクを踏んでください!!(笑
July 5th, 2006

include_pathのファイルをもっと簡単に探す

(Read: 7685)
Add to Hatena Bookmark

参照: 武蔵流プログラマへの道 - PEARパッケージが存在するかどうかチェックする
Ethnaにinclude_pathを元にファイルの存在を確かめる関数があるようですが,もっと簡単に書けるかもしれません.
とりあえずコード.


function file_exists_ex( $filename, $use_include_path = TRUE) {
if ( $use_include_path == TRUE) {
$fp = fopen( $filename, "r", 1); // 第3引数はBooleanであって欲しいところ
$is_open = is_resource( $fp) == TRUE;
$include_paths = explode( PATH_SEPARATOR, get_include_path());
$result = in_array( ".", $include_paths) == TRUE?
$is_open: ( file_exists( $filename) != TRUE && $is_open);
if ( $is_open == TRUE) {
fclose( $fp);
}
} else {
$result = file_exists( $filename);
}
return $result;
}
ようするにfopen()は第3引数でinclude_pathを影響させるかどうか指定できるのでそれを指定します.
「.」が含まれること前提ならさらに短くできますし,ほとんどの人が省略する「== TRUE」を省略したりいろいろするとさらにコンパクトになると思います.

で,気になったのですが,Ethnaのis_absolute_path()はネットワークドライブを見ることができないんじゃないでしょうか?


C:\php5>type con | php -Cq
<?php
var_dump( fopen( "\\\\mycomputer\path\to\file.txt", "r"));
?>
^Z
resource(2) of type (stream)
まぁふつー使わないと思いますけど(苦笑

トピックの参照元

▼最近のトピック

▼ 人気のトピック


< 過去の記事 [ 7All Categories ] 新しい記事 >
Powered by gsblog (customize)

[ POST ] [ AddLink ] [ CtlPanel ]

Subscribe blog

Bookmark blog

About me

about me

応援しています

我が息子が産まれたアクア・バースハウス(東京都世田谷区にある助産院)を応援しています.

翻訳のお仕事

腕に自信がある方,修行をしたい方はこちらをどうぞ.

2006 calendar

7月
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
| Day | Month | Year |

Powered by RRDTOOL.

Archives

Categories

Links


Mail to admin

人気ブログランキングへ RSS feed meter for http://blog.poyo.jp/ Search Engine Optimization
blogpeople.netに登録!! スカウター : よくきたblog

My Google news

My Google News

Related site

ころんころん♪ べびぽよ フォト蔵Wiki
string(40) "/categ-1/year-2006/month-7/id-1152085878"