php - 无法从 php 执行 ttf2afm

标签 php linux passthru

我正在开发一个涉及 PDF API TCPDF 的项目。因此,我需要在管理中设置一个区域,站点管理员可以在其中上传和安装与 TCPDF 一起使用的新字体。 我正在编写一个执行以下操作的脚本: 1) 将 TTF 字体上传到 TCPDF fonts/utils/目录。 2) 从 PHP 脚本执行 ttf2afm 并创建 .AFM(adobe 字体规范)

$command = escapeshellarg("/usr/bin/ttf2afm $fontPath$fontName -o $fontPath$afmName");
$result = passthru($command);

$command = escapeshellarg("ttf2afm $fontPath$fontName -o $fontPath$afmName");
$result = passthru($command);

3)执行php -f makefont.php font.ttf font.afm,生成需要的font.php和font.z文件。

现在我的问题是,上述命令没有从网页执行。如果我从 php 交互式 shell 复制并执行部分代码,它会很好地工作。但是,从网页来看,它根本不起作用......

是否存在一些与权限相关的问题?或者我无法从网页执行此类命令?

提前致谢

最佳答案

首先,escapeshellarg使用错误。更好的是:

$command = escapeshellcmd("/usr/bin/ttf2afm")." ".escapeshellarg($fontPath.$fontName)." -o ".escapeshellarg($fontPath.$afmName);

还要确保启用错误日志记录,以便您可以查看是否存在权限错误。

关于php - 无法从 php 执行 ttf2afm,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6491280/

相关文章:

php - ORM/DAO/DataMapper/ActiveRecord/TableGateway 的区别?

php - 从 php 和 mySQL 中的 select 语句中选择

linux - 作为一名学生程序员为什么我应该使用linux

python - 将 Python 代码分发为 Mac/Windows/Linux 的可执行文件

php - 如何将字符串从 php 传递到 tcl 并执行脚本

php - PHP正则表达式获取URL段

php - 如何从 PHP 扩展返回 C++ 对象数组

linux - 主动关闭服务器套接字

sql-server - 如何使直通/直通查询可编辑?

php - 使用 system( ) 甚至 passthru( ) 从 php 运行 python 脚本不会产生任何输出。为什么?