我正在开发一个涉及 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/