Edit report at https://bugs.php.net/bug.php?id=64684&edit=1

 ID:                 64684
 Updated by:         a...@php.net
 Reported by:        rg at mejoramos dot com
 Summary:            FILEINFO_MIME_ENCODING fail
 Status:             Not a bug
 Type:               Bug
 Package:            *Directory/Filesystem functions
 Operating System:   Windoqs and Linux
 PHP Version:        5.3.24
 Assigned To:        ab
 Block user comment: N
 Private report:     N

 New Comment:

Almost yes. Please note that we just wrap libmagic with php, the file command 
is yet another wrapper. I also can see the same warning with 5.5 branch on an 
empty file, where with the file command it's the same "file too small" warning. 
So looks better there, but that are indeed edge cases handled by libmagic, not 
php.


Previous Comments:
------------------------------------------------------------------------
[2013-04-22 10:22:36] rg at mejoramos dot com

Thanks by you help.

>>>the file is way too short, and that's the issue.
>>>libmagic needs at least a few bytes at the start of a file to do the magic.

Mmm...

If you remove the number (if file is EMPTY), then PHP don´t cry.

Conclution:
The issue is more than of Magic, and no of PHP ¿?

------------------------------------------------------------------------
[2013-04-22 07:31:01] a...@php.net

Thanks for reporting this. Now I get the behavior you've described. You 
literally put only one char 0x30 into the file, and that's exactly the issue. 
Previously I've tested with a kind of file created manually, but an editor 
automatically appends some chars there. So to get such a case on has to create 
it with a hex editor or just php -r 'file_put_contents("file", "0")'; 

I'd consider this one as not a bug. If I run "file action_number" with your 
file on the Linux shell, here's the output:

action_number: very short file (no magic)

Running "file --mime --mime-encoding action_number"  says

action_number: application/octet-stream

which is a normal fallback.

Thus - the file is way too short, and that's the issue. libmagic needs at least 
a few bytes at the start of a file to do the magic.

For your case - if you know there's only a number in that file, no need to 
check the charset. It'll be always ascii. Either it's a number which you read 
in and cast integer, or it's invalid - I'd do so.

------------------------------------------------------------------------
[2013-04-21 17:38:46] rg at mejoramos dot com

Thanks by you interest.

You can see ALL DETAIL by download:

http://utp.guirv.com/descargas/?f=/PHP_BUG_64684.rar
(318 bits)

When you run in Windows:
Warning: finfo_file(): Failed identify data 0:(null) in E:\HTTP... 
...\PHP_BUG_64684\fileinfo.php on line 3 

When you run in Linux CentOs:
 Warning: finfo_file() [function.finfo-file]: Failed identify data 0:(null) in 
/home/... .../PHP_BUG_64684/fileinfo.php on line 3

------------------------------------------------------------------------
[2013-04-21 16:28:56] a...@php.net

I can't reproduce this using your snippet, I get us-ascii and that will be it 
in any case. For that I've created a file containing just 0. 

And, you might anyway be interested on the next 5.4 release as libmagic was 
upgraded, or already test the latest windows snapshot from 
http://windows.php.net/downloads/snaps/php-5.4/ .

To reproduce this issue a reliable snippet in required.

------------------------------------------------------------------------
[2013-04-20 14:28:05] rg at mejoramos dot com

Description:
------------
If FILE have contain exactly the string:
"0"
without quotes, then:

in Windows output:
Warning: finfo_file(): Failed identify data 0:(null) in ...

in Linux output:
Warning: finfo_file() [function.finfo-file]: Failed identify data 0:(null) in 
...

Why file have a "0" ?
becouse I need read a integer in range 0-25 to take some decisions...

Why I run finfo_file() ?
Becouse I need know if last edition create UTF8 or ISO-8859-1



Test script:
---------------
echo 'Encoding: 
'.finfo_file($finfo,$_FILES['name_in_FORM']['tmp_name'],FILEINFO_MIME_ENCODING);

Remember: target file contain only the string: "0" without quotes.



------------------------------------------------------------------------



-- 
Edit this bug report at https://bugs.php.net/bug.php?id=64684&edit=1

Reply via email to