ID:               43148
 User updated by:  banu_daniel1 at yahoo dot com
 Reported By:      banu_daniel1 at yahoo dot com
 Status:           Open
 Bug Type:         Filesystem function related
 Operating System: windows xp 32 bits
 PHP Version:      5.2.4
 New Comment:

i've don this
<?
if
(file_exists("D:\Downloads\&#21205;&#20043;&#23478;&#30332;&#20296;\&#12495;&#12516;&#12486;&#12398;&#12372;&#12392;&#12367;01\DVD_VIDEO.MDS"))
echo "ok";
else echo "files dose not exist<br>\n";
print_r(glob("D:\Downloads\&#21205;&#20043;&#23478;&#30332;&#20296;\&#12495;&#12516;&#12486;&#12398;&#12372;&#12392;&#12367;01\DVD_VIDEO.MDS"));

//exemple from help
$d = dir("D:\Downloads\&#21205;&#20043;&#23478;&#30332;&#20296;");
echo "Handle: " . $d->handle . "\n";
echo "Path: " . $d->path . "\n";
while (false !== ($entry = $d->read())) {
  echo $entry."<br>\n";
}
$d->close();

?>


Previous Comments:
------------------------------------------------------------------------

[2007-10-31 23:45:38] carsten_sttgt at gmx dot de

> this is the hex value  453A456D696C7961FA436861642E6D7067

Well, this HEX looks like ISO-8859-1 and not UTF-8:
453A456D696C7961FA436861642E6D7067
E : E m i l y a ú C h a d . m p g
(The char between Emilya and Chad is a latin small letter u with
acute)


> if (file_exists("E:\Emilya·Chad.mpg")) echo "ok" and is not working.
In this string we have (in UTF-8):
453A5C456D696C7961C2B7436861642E6D7067
E : \ E m i l y a ·   C h a d . m p g
(or in ISO-8859-1):
453A5C456D696C7961B7436861642E6D7067
E : \ E m i l y a · C h a d . m p g
(The char between Emilya and Chad is a middle dot)


This works here:
<?php
$name = 'Emilya·Chad.mpg';
touch($name);
echo filesize($name);
?>


What's the codepage/language of your system?
What's the result (filename) if you use glob() or the directory class
dir()?

Regards,
Carsten

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

[2007-10-31 22:09:38] banu_daniel1 at yahoo dot com

well, i copy/paste the name of the file and did this
echo filesize("E:\Emilya·Chad.mpg"); and i have the same result
and also this
if (file_exists("E:\Emilya·Chad.mpg")) echo "ok" and is not working.

this is the hex value  453A456D696C7961FA436861642E6D7067

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

[2007-10-31 20:57:46] carsten_sttgt at gmx dot de

Well, the "&#12539;" is a Katakana middle dot. You have not used this
char in your sample? Because I have no problems to create and access
files with this char in the filename with PHP.

You have a better (complete) testscript to reproduce the problem? Or
what's the value $eps["FNAME"][$f] in hex?

Regards,
Carsten

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

[2007-10-31 18:37:11] banu_daniel1 at yahoo dot com

it's not a HTML entity what i had wrote in this example. I don't know
whitch one convert it in html entity. The problem is that i have unicode
characters in filename and filesize and file_exists (i discover just now
and maybe other fuctions for files/directories access) is not working

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

[2007-10-30 21:32:38] carsten_sttgt at gmx dot de

The filesystem functions have no problem with unicode (utf-8). But you
must use a unicode char, and not a HTML entity which are represent a
unicode char.

| $size= sprintf("%u",
|     filesize(html_entity_decode($eps["FNAME"][$f],
|         ENT_COMPAT, 'UTF-8')
|     )
| );

Regards,
Carsten

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

The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
    http://bugs.php.net/43148

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

Reply via email to