Java 运行backticks/exec()的PHP路径问题

Java 运行backticks/exec()的PHP路径问题,java,php,macos,Java,Php,Macos,我试图从命令行运行一个javajar文件,在执行过程中它给出了一个路径。在这条路径上,它们的空间就是空间,这就是问题的根源 即 有什么建议可以解决这个问题吗 希望您能提供建议$f=“java-jar/OCR/OCR.jar/Folder/Sub\\Folder/filetoocr.pdf/OCR/output.txt”; $f = 'java -jar /OCR/ocr.jar "/Folder/Sub Folder/filetoocr.pdf" /ocr/output.txt'; echo "

我试图从命令行运行一个javajar文件,在执行过程中它给出了一个路径。在这条路径上,它们的空间就是空间,这就是问题的根源

有什么建议可以解决这个问题吗

希望您能提供建议

$f=“java-jar/OCR/OCR.jar/Folder/Sub\\Folder/filetoocr.pdf/OCR/output.txt”;
$f = 'java -jar /OCR/ocr.jar "/Folder/Sub Folder/filetoocr.pdf" /ocr/output.txt';
echo "<pre>$output</pre>";
回显“$output”;

$f='java-jar/OCR/OCR.jar”/Folder/Sub Folder/filetoocr.pdf”/OCR/output.txt';
回显“$output”;

在PHP中添加相同的
\

使用引号


为什么不
escape
即使在后面的勾号中也要使用
空格

使用:

escapeshellarg()在字符串周围添加单引号,并引用/转义任何现有的单引号,使您可以将字符串直接传递给shell函数,并将其视为单个安全参数。 也许


很抱歉,我现在添加了一个更真实的工作。正如您所看到的,路径来自一个循环,我自己找到了答案,只是在路径周围添加了引号就解决了问题!ie,$f=
java-jar/OCR/OCR.jar'/Folder/$path'/OCR/output.txt
java -jar /OCR/ocr.jar /Folder/Sub\ Folder/filetoocr.pdf /ocr/output.txt
$f = "java -jar /OCR/ocr.jar /Folder/Sub\\ Folder/filetoocr.pdf /ocr/output.txt";
echo "<pre>$output</pre>";
$f = 'java -jar /OCR/ocr.jar "/Folder/Sub Folder/filetoocr.pdf" /ocr/output.txt';
echo "<pre>$output</pre>";
$f = `java -jar /OCR/ocr.jar '/Folder/Sub Folder/filetoocr.pdf' /ocr/output.txt`;
$f = `java -jar /OCR/ocr.jar /Folder/Sub\ Folder/filetoocr.pdf /ocr/output.txt`;
$cmd = sprintf(
  'java -jar %s %s %s',
  escapeshellarg('/OCR/ocr.jar'),
  escapeshellarg('/Folder/Sub Folder/filetoocr.pdf'),
  escapeshellarg('/ocr/output.txt')
);
echo 'Debug: cmd=', $cmd;