开发者

In PHP, after assigning a file pointer resource to a variable with fopen(), how can I get the file name from the variable?

For example:

$file开发者_高级运维 = fopen("File.txt", "r");
$filename = $file->basename;

if there was a method like basename for file objects (file pointer resources).


No, there is not.

By the way, in which scenario is this thing needed?


I came to this page while trying to find out the filename that PHP's tmpfile() function had created - it returns a pointer. I wanted to use it to create a file I could use with some Unix commands. In the end I used tempnam(realpath(sys_get_temp_dir()), "piclib_"); instead.


No, there is not a method to do. You should rather store the filename in a variable, like this:

<?php
$filename = "File.txt";
$file = fopen($filename, "r");
$basename = basename($filename);

Also, a little side note: a file pointer is not an object, it is a resource, which you can see by passing it to var_dump() (it would output something like resource(3) of type (stream)). This means that you cannot use it directly, you would have to use functions from the PHP core or a PHP extension to handle it. In the case of file pointers, you would use functions like fread(), fwrite() and fclose() to do so.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜