自身(*.cgi)のフルパスを取得するには?
[上に]
[前に]
[次に]
J.Naka
[E-Mail]
1999/08/28(土) 02:30:28
Perlでフルパス指定のコマンドがありますが、自身(Current)のフルパスを取得する方法ってあるでしょうか?
Aurai
1999/08/28(土) 02:47:49
$0 で実行中のスクリプトを取得できるそうですが
フルパスで返るかどうかはOSにより異なるそうです
B-Cus
1999/08/28(土) 07:19:12
$_ = $0;
$pwd=`pwd`; chop $pwd;
if ( -l $_ ){ $_ = readlink($_); }
s|^([^/])|$pwd/$1|;
1 while (s|[^/]+/\.\./||g);
s|\./||g;
print "$_\n";
とか。
ふじ
1999/08/28(土) 11:43:54
use Cwd;
$current_dir = cwd;
とか。Perl5なら標準モジュールの筈。
J.Naka
1999/08/28(土) 14:08:07
[[解決]]
Auraiさん、B-Cusさん、ふじさん、解答有り難う御座います。
Auraiさん>
現在使っているInterQで動作さしたいところです。
InterQのOSはちと前まではWinNTだったはずが
最近はUNIXになってるようです(^^??
B-Cusさん>
コード提示有り難う御座います。
そのままペーストしてやってみると旨くいきました。
ありがとうさんです。(_ _)
ふじさん>
InterQのPerl5では動作しましまたが、自宅のPerl5(Jperl)では
動作しませんでした。$]の値は自宅のほうがバージョン上のよう
ですが、ライブラリのほうが低いのか良く分かりません(^^;
B-Cusさん>
J.Naka
1999/08/28(土) 14:20:17
ふじさん>
(笑)自宅の環境変数 PERLLIB が未設定でした。
Autoexec.batに登録+再起動するとちゃんと動作しまた。(^^;;;
Perl5ならば、use Cwdのほうが簡単でよいですね(^0^)
J.Naka
1999/08/28(土) 15:50:21
■その後
フルパスは取得できるんですが、
URLでなく物理パスのようで、目的には使えないです(^^;
しようがないから、URLで定数で決めうちにしました(^^;
B-Cus
1999/08/28(土) 19:02:44
やれやれ。最初から目的を詳しく書けばいいものを…。
いつまでたっても質問の仕方がヘタですね。
apacheなら $ENV{REQUEST_URI}、$ENV{SCRIPT_NAME} あたりじゃないの?
J.Naka
1999/08/29(日) 08:38:35
ども、B-Cusさん。
ほんとうに質問の仕方がヘタッピです(笑)
質問アップの時はあれやこれや思考が駆け回っていて
自分の中では目的語が暗黙の了解事項になっていたり
します(笑)。しかし他人さんに一人よがりの暗黙事項
はわかりやせん(笑)。
と、いうことで、これからはプログラミングスキルならぬ
質問スキルを上げる事に精進したいと思います。(_ _)
で、$ENV{REQUEST_URI}は、REQUEST_URL のタイプミスですか?
両方見てましたが、サーバー(InterQ)&自宅ともに何も未定義環
境変数みたいですが(^^?
$ENV{SCRIPT_NAME}は、URLでなく物理パスが入ってます。
J.Naka
1999/08/29(日) 09:01:05
■訂正 $ENV{REQUEST_URI}
サーバー(InterQ)の方には、URLが完全ではないですが
はいっていました。。。。タイプミスでは無かった(笑)(_ _)
自宅のサーバソフト(AnWeb/1.15b)には、入ってないので
目的(サーバー分岐)には使えないです。
あっ、目的は、(今ごろ書くか(^^;)
同一スクリプトを、
仮想サーバー(自宅サーバ)とオンラインサーバ(レンタルサーバ)
の両方で動作させるため、サーバー種の違いをカレントURLから
判断し、そこで得られたURL文字列をそのままコード上で変数とし
て使いたい。
サーバー種の判断を他の(URL違いの以外)方法でやると、判断後
にURLの設定処理が新たに必要なため、処理簡潔化のためURL判
断としたい。
です。
おまけ:
目的の伝達と文章としての冗長性などいかがなものでしょうか?
B-Cus
1999/08/30(月) 00:07:44
> 目的の伝達と文章としての冗長性などいかがなものでしょうか?
いまいちです。あなたの場合、用語の使い方が正確ではないので
(フルパスを取得したいと言ったり、URLを取得したいと言ったり)、
www.hoge.com
/~user/index.html
/home/user/public_html/index.html
http://www.hoge.com/~user/index.html
のように、実際にどのような値が欲しいのかを書くといいでしょう。
> ほんとうに質問の仕方がヘタッピです(笑)
笑いごとではなく、ちょっとは真面目に考えてくださいね。
[上に]
[前に]
[次に]