我面临的问题可能有一个简单的解决scheme,但由于我不是一个PHP专家,我无法find它。 我通常这样做,我必须从PHP调用一个shell命令:
cmd = "convert file.pdf image.jpg"; shell_exec($cmd);
但是现在我有一个在shell上运行的命令,我不能从PHP运行它,所以我认为可能有一种方法来声明相同的命令,但是在PHP语言中,
命令:
for i in $(seq --format=%3.f 0 $nf); do echo doing OCR on page $i; tesseract '$imgdir/$imgdir-$i.ppm' '$imgdir-$i' -l eng; done
我的PHP尝试:
sched_yield在这种情况下做什么?
为node.js安装NPM时出错
为什么这个简单的Linux C程序加载.so在运行时崩溃?
如何在AWS S3存储桶中查找重复文件?
DelayedJob错误:已经有一个或多个正在运行的程序实例
<?PHP $imgdir = "1987_3"; $nf = count(new GlobIterator('filesup/'.$imgdir.'/*')); $cmd = "for i in $(seq --format=%3.f 0 $nf); do echo doing OCR on page $i; tesseract '$imgdir/$imgdir-$i.ppm' '$imgdir-$i' -l eng; done" shell_exec($cmd); ?>
我得到的是:
PHP Notice: Undefined variable: i in count.PHP on line 7
build议非常欢迎…谢谢
UPDATE
我已经从我被标记为可能重复的问题中读取了这个问题,而我从中明白的是,我的“我”必须有一个参考,对于一个shell命令来说,它有,但是它不起作用执行从PHP。
对此我也试过这个不成功的:
<?PHP $imgdir = "1987_3"; $nf = count(new GlobIterator('filesup/'.$imgdir.'/*')); $cmd ="seq --format=%3.f 0 $nf"; $i = shell_exec($cmd); $cmd = "tesseract 'filesup/$imgdir/$imgdir-$i.jpg' 'filesup/$imgdir/$imgdir-$i' -l eng; done"; shell_exec($cmd); ?>
我如何知道Linux进程正在等待什么?
Gattool非交互式模式 – char-write
在Ubuntu-16.04上从源代码安装gcc-4.8.1
截取路由器上的udp数据包
PHP将使用双引号来评估字符串中的所有变量,例如:
<?PHP $i=5; echo "Your i is: $i"; ?>
输出 : Your i is: 5
如果你想避免这种行为,使用一个简单的报价:
<?PHP $i=5; echo 'Your i is: $i'; ?>
输出 : Your i is: $i
像这样更新你的代码:
<?PHP $imgdir = "1987_3"; $nf = count(new GlobIterator('filesup/'.$imgdir.'/*')); $cmd = 'for i in $(seq --format=%3.f 0 $nf); do echo doing OCR on page $i; tesseract '' . $imgdir/$imgdir . '-$i.ppm' '' . $imgdir . '-$i' -l eng; done'; shell_exec($cmd); ?>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。