[PHP-users 6100] Re: 配列

GT php-users@php.gr.jp
Tue, 12 Mar 2002 21:08:29 +0900


GTと申します。

いつもお世話になっております。

>> $ints = range('0', 'z');
>> この様にすると下記のように不要な「:;<=>?@[\]^_`」が入ってしまいます。
>> 0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz
>> 
>> 0-9 a-z A-Z - _ だけが入る方法はありませんでしょうか?
>> 無理矢理ですがこんな感じに...「$ints = range('a','z'+'A','Z');」
> 
> 試してませんが、
> 
> $ints = array_merge(range('0','9'), range('a','z'),
> range('A','Z'),array('-','_'));
> 
> では、どうでしょうか?

こちらで上手くいきました。 
ありがとうございました。

> というか、
> 「作った$intsを何に使うのか?」の方に非常に興味あります。
> 
> # perlの人なら入力データのチェックなど正規表現できることを実装する
> # わけではないでしょうし。
> # 足して64文字ということはBase64を作るとか?63文字目、64文字目が
> # RFC的じゃないし、作んなくても関数あるし。
> そっちを教えていただければもっといいレスがつくと思いますよ。

文字数にはこだわっておりませんでした^^;
ただできるだけ多くのファイル名に使える文字を用意したかったのです。

この配列からランダムに選択された数十文字をファイル名に使い、
nsif6wj5dn2kwoql-djmn_hairvcow3.html という感じにして
ファイル名自体にアクセス制限があるのと同じようにしたかったのです。

不特定多数の人がアクセスできるディレクトリ内のファイルに...

それぞれの人が自分のファイル名だけを知っていてそれにアクセスできる。
ファイル名を教えてもらった友達もアクセスできる。
でも、他人のファイルにはアクセスできない... と言うように

現在perlでこの様にしているのですが事実上アクセスはできないと思いますので...
「それはまずいよ!!」というようであればご指摘頂ければ幸いです。

ありがとうございました。