【问题标题】:Retrieve path of tmpfile()检索 tmpfile() 的路径
【发布时间】:2012-06-26 17:13:49
【问题描述】:

快点……

有没有办法检索tmpfile()创建的文件的路径?

还是需要我自己用tempnam() 做?

【问题讨论】:

    标签: php


    【解决方案1】:

    似乎stream_get_meta_data() 也有效:

    $tmpHandle = tmpfile();
    $metaDatas = stream_get_meta_data($tmpHandle);
    $tmpFilename = $metaDatas['uri'];
    fclose($tmpHandle);
    

    【讨论】:

    • +1 用于实际回答问题。从 PHP 5.3 开始,您可以简单地使用 stream_get_meta_data($tmpHandle)['uri']
    • $foo()['bar'] 在我的 PHP 5.3.13 上不起作用,否则这个答案是上述问题的正确答案。
    • 太棒了! sys_get_temp_dir() 在旧的 php 5.1 服务器上不可用:(
    • 当然在fclose()调用it deletes the temporary file之后你不能再访问这个文件了。
    • 搜索了大约一个小时..!
    【解决方案2】:

    这样

    $path = array_search('uri', @array_flip(stream_get_meta_data($GLOBALS[mt_rand()]=tmpfile()))); 
    file_put_contents($path, 'hello'); 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-31
      • 2010-09-19
      相关资源
      最近更新 更多