Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从服务器加载字体_Php_Fonts - Fatal编程技术网

Php 从服务器加载字体

Php 从服务器加载字体,php,fonts,Php,Fonts,我有一个PHP,它正在从服务器加载字体,以便在图像上写入文本 到目前为止,我在搜索中看到的所有加载字体的示例都明确地命名字体(例如Arial.ttf)。我的PHP目前使用同一目录中的字体,但我希望通过不强制部署人员包含字体文件,使PHP更易于移植。因此,我希望PHP使用已经安装在服务器上的字体 (core1)PHP中是否有一个工具来确定服务器上安装了哪些字体?如果没有,有没有办法让服务器加载逻辑字体(Serif、Sans Serif、Monospaced等) 注意:可以实现上述功能的PHP AP

我有一个PHP,它正在从服务器加载字体,以便在图像上写入文本

到目前为止,我在搜索中看到的所有加载字体的示例都明确地命名字体(例如
Arial.ttf
)。我的PHP目前使用同一目录中的字体,但我希望通过不强制部署人员包含字体文件,使PHP更易于移植。因此,我希望PHP使用已经安装在服务器上的字体

(core1)PHP中是否有一个工具来确定服务器上安装了哪些字体?如果没有,有没有办法让服务器加载逻辑字体(Serif、Sans Serif、Monospaced等)

  • 注意:可以实现上述功能的PHP API不感兴趣。它需要上传/安装API,这违背了“简化”的意图。只有与核心PHP一起工作的解决方案才有用

  • 这种方法可能会降低可移植性,而不是提高可移植性:您不能真正依赖于给定系统上现有的字体,但更重要的是,考虑到许多PHP安装都是在SSH专用VP或共享托管服务上,因此存在任何可用系统字体的可能性非常低(没有GUI意味着字体通常是杂乱无章的)

    如果您的应用程序依赖于特定字体,请将其与您的发行版捆绑,或者如果字体许可证不允许这样做(对于由Microsoft拥有的Arial,这一点肯定是正确的),您的发行版文档可以告诉用户,他们必须将文件放入特定目录(例如,
    /resources/font
    )或者让脚本根据环境中的位置或
    .ini
    文件等获取字体,允许用户指向该字体的本地副本所在的位置

    也就是说,PHP本身不使用字体(它不知道如何使用字体),但服务器上的PHP扩展,如ImageMagic、pdf生成器等,肯定可以使用字体

    另一方面,如果重要的是字体在浏览器中正确加载,当用户调用PHP脚本并发送一个网页与代码库进行交互时,那么这就是webfont位置问题(只需确保PHP生成的页面代码指向可解析的URL),而不是PHP问题


    与“可以实现上述功能的PHP API不感兴趣。它需要上传/安装API,这违背了“简化”的意图”声明:PHP用于包管理。这通常是一个简单的问题,因此没有什么困难甚至不方便的地方。

    这不是更便于移植,而是更不便于移植。千万不要假设服务器上预先安装了任何字体,尤其是仅具有ssh访问权限的服务器,其中系统级字体非常杂乱。如果你的应用程序应用程序依赖于一种特定的字体,或者将其捆绑在一起,或者如果该字体的许可证不允许,告诉人们他们可以编辑
    .ini
    文件或其他文件来设置应该使用的字体的位置。我当然可以这样做。PHP core不使用字体(它不知道如何处理字体)但是像ImageMagic、pdf生成器等扩展可以使用它们。如果重要的是它们的字体在浏览器的客户端上使用,那么这是一个webfont位置问题,而不是PHP问题。特别感谢最后一段中的澄清。似乎我做了一些不正确的假设!