I'm trying to match file names associated with a 3DS file (a 3DS file is a
common 3D file format). The file is binary by nature but as you can clearly
see in the dump below the filenames themselves are stored as plain text.
So I should be able to do a simple eregi() on the file and discover if the
filename exists within that file or not, right?
<? // here's just some simple test code...
$imagename = "PYRSTN01.JPG";
$path = "/home/placest/exchange/test.3ds";
$fp = fopen($path, "r");
if ($fp !== false)
{
$file = fread($fp, filesize($path));
fclose($fp);
$result = eregi($imagename, $file);
if ($result == true)
{
echo "FOUND IT";
}
else
{
echo "COULD NOT FIND IT";
}
}
?>
Here's a snipplet of the file dump to the screen. You can quite plainly see
that "PYRSTN01.JPG" exists as text in this string. Now if I copy a portion
of this string and paste it into my code of course it works and echos 'found
it'. But if I perform the eregi() function on the raw string read directly
from the file it prints 'could not find it'... why? Isn't it the same exact
thing?
-------------------------------------------------------------------
.....0¡„ 0 Š ‡ €?¢30d£PYRSTN01.JPGQ£S£
€?@vBox01AjAhƒ:oƒ:oƒ.....
-----------------------------------------------------------------------
To be honest I don't know or even care about the difference between ASCII
and BINARY. In this case all I want to do is locate the plain text,
"PYRSTN01.JPG" within the 3DS file string. But clearly I'm missing some
vital bit of information or there's something I don't understand about binay
strings being interpreted as ASCII? Anyone know how I can make this work?
Much thanks,
-Kevin
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php