PHPアプリケーション上でファイルをアップロードすると、$_FILESにいくつか情報が格納されます。
その中の一つ["tmp_name"]にはテンポラリファイル名(デフォルトだと/tmp/XXXXX...でしょうか)が
格納されていますが、このテンポラリファイル名の「命名規約」について、解説のページ・書籍等はないのでしょうか?
いろいろ見ているとファイル名の先頭は「php」であったり、大小英数字がランダムで設定されていたりしていることは見て取れたのですが、バラバラで規則じみていなかったもので...。
こんな質問で恐縮なのですがご存知の方いらっしゃいましたら、ご回答のほどお願いいたします。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
Github - php-src
https://github.com/php/php-src/
こちらからC言語で書かれたPHPの構成コードを検索してみました。
1. 「tmp_name」で検索
2. 検索結果より、「tmp_name」はC言語中の変数では「temp_filename」に対応していると推測
3. 「fd = php_open_temporary_fd_ex(PG(upload_tmp_dir), "php", &temp_filename, 1 TSRMLS_CC);」に目をつける
4. 「php_open_temporary_fd_ex」のプロトタイプを見ると第2引数が「const char *pfx」となっているので、これが「prefix」を意味すると推測
5. 「fd = php_do_open_temporary_file(dir, pfx, opened_path_p TSRMLS_CC);」に目をつける
6. 結果的にWindowsAPIの「GetTempFileName」もしくはLinuxAPIの「mkstemp」「mktemp+VCWD_OPEN」を叩いているところにたどり着く
コードを見る限り、OSがランダム生成した文字列にプレフィックス「php」を付加していることは確認できますね。各APIに関しては下を参照してください。mktempはファイル名を得るだけの関数で自前で作成(VCWD_OPENをコール)しなければなりませんが、自動的に作成してくれるmkstempがコール可能な場合はそちらを利用する実装になっているようです。
GetTempFileName
http://msdn.microsoft.com/ja-jp/library/cc429354 …
mkstemp
http://kazmax.zpp.jp/cmd/m/mkstemp.3.html
mktemp
http://kazmax.zpp.jp/cmd/m/mktemp.3.html
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP $filePath = './user_img/' . $file['name'];? 1 2022/12/10 07:29
- PHP どうして送信されないのでしょうか? 1 2022/12/09 05:23
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- Visual Basic(VBA) VBA GetAttrについて教えてください 2 2022/12/22 15:25
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/06 13:01
- PHP php 入力画面から確認表示画面へ情報の受け渡しについて。 1 2023/06/07 18:00
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/11 11:05
- Visual Basic(VBA) 【マクロ】フォルダにファイルが1つも無い時に、ファイルがありませんとメッセージを表示する 4 2022/08/28 08:48
- JavaScript clear機能を失わずにファイルアップロード機能を作成したい 3 2023/06/10 16:12
- Visual Basic(VBA) batにて、異なるフォルダの同名ファイルを参照し、文字列を判別。擬似配列で変数へ格納 3 2022/04/10 03:37
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
これの対応OSを教えて下さい。p...
-
3人の旅人が
-
PHPからMSSQLへの接続結果の文...
-
<A HREF="bg.php" target="_bl...
-
ログイン判定後の画面遷移について
-
Twitter Oauth認証がエラーにな...
-
HYのAM11:00のラップの部分の歌...
-
phpでバッチ組めますか?
-
PHPで新しいウインドウで開く命...
-
onedrive にexcelファイルをア...
-
PHP8を使うと、大量のWarningが...
-
PHPで特定のURLにジャンプす...
-
PHP4対応のサーバーではinclude...
-
imagejpegで表示されない。
-
VBAのコードを教えてください
-
CFileDialogの最初のディレクト...
-
透過PNGが透過されない!!
-
手作業で埋め込んだ、UserForm1...
-
拡張子php画像をjpg画像等に変...
-
PHPからメールを送る@さくらイ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
.htaccessにphp_valueが使用できな
-
フォームで戻った際に入力済み...
-
phpの中でphpを書けないか
-
<A href ~ と一緒に値を渡すには
-
header(Location:~)で$_SESS...
-
PHPで別PHPを呼び出す。
-
PHPからMSSQLへの接続結果の文...
-
これの対応OSを教えて下さい。p...
-
複数のPHPファイルを読み込むに...
-
*.php、*.php3、*.phtmlの違い
-
東京都の高校の九段高校ってど...
-
HYのAM11:00のラップの部分の歌...
-
PHPINFOが見えない
-
<大至急!>ご教授願います。
-
リンクのクリック数をカウンタ...
-
服にかいた油性ペンがにじまな...
-
さくらインターネットでメール...
-
libphp5.so がないと?
-
mamp環境でのcronの使い方で困...
-
PHPExcel に関して
おすすめ情報