使用 PHP 从 OS X 提取文件中嵌入的创建者信息?

发布于 2024-08-06 19:02:26 字数 133 浏览 3 评论 0 原文

在 OS X 中,如果我使用 Photoshop(例如)创建 PNG 文件,我可以选择保存不带扩展名的文件,并且 OS X 仍然可以识别该文件的类型以及使用什么应用程序打开它。

有什么方法可以让我使用 PHP 从物理文件中提取该信息吗?

In OS X, if I use Photoshop (for instance) to create a PNG file, I have the option to save the file without an extension and OS X still recognizes what type of file it is and what application to open it with.

Is there any way for me to extract that information from a physical file using PHP?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

棒棒糖 2024-08-13 19:02:26

如果您使用的是足够新的 PHP 版本(即 5.3)或者可以安装 PECL 扩展,您应该查看 Fileinfo 扩展,与 PHP 5.3 捆绑在一起。

引用给定示例之一,像这样的代码的一部分:

<?php
$finfo = finfo_open(FILEINFO_MIME_TYPE); // return mime type ala mimetype extension
foreach (glob("*") as $filename) {
    echo finfo_file($finfo, $filename) . "\n";
}
finfo_close($finfo);
?>

可能会给你这样的东西:

text/html
image/gif
application/vnd.ms-excel

如果您坚持使用旧版本的 PHP,并且无法安装 PECL 扩展,也许 mime_content_type 函数就可以了。

If you're using a recent enough version of PHP (ie 5.3) or have the possibility to install PECL extensions, you should take a look at the Fileinfo extension, that's bundled with PHP 5.3.

Quoting one of the given examples, a portion of code like this one :

<?php
$finfo = finfo_open(FILEINFO_MIME_TYPE); // return mime type ala mimetype extension
foreach (glob("*") as $filename) {
    echo finfo_file($finfo, $filename) . "\n";
}
finfo_close($finfo);
?>

Might get you something like this :

text/html
image/gif
application/vnd.ms-excel

If you're stuck with an older version of PHP, and cannot install PECL extensions, maybe the mime_content_type function would do.

凉城已无爱 2024-08-13 19:02:26

PNG 文件的前八个字节始终包含以下(十进制)值:
137 80 78 71 13 10 26 10

您可以使用 PHP 读取文件头并从已知的头中推断出文件类型。您可以在互联网上轻松找到每种格式规范(JPG、位图、GIF、PNG 等)的信息。

在这里,我将首先为您提供:
- PNG 规范

The first eight bytes of a PNG file always contain the following (decimal) values:
137 80 78 71 13 10 26 10

You can use PHP to read file headers and deduce the file type from known headers. you can find this information quite readily on the internet in each format's spec (JPG, Bitmaps, GIF, PNG, whatever)

Here, I'll start you off:
- PNG Spec

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文