PHP调用Bash脚本

PHP调用Bash脚本

我确实无法让这个从“form.htm”调用的 PHP 脚本“search.php”正常工作。我在这里做错了什么?

<?php
   $old_path = getcwd();
   chdir('/var/www/html/SOKHJALPMEDEL/');
   $term1 = $_POST['query1'];
   $argument1 = $_GET['$term1'];
   $term2 = $_POST['query2'];
   $argument2 = $_GET['$term2'];
   echo $nu_kor_vi1;
   $outcome = shell_exec("sokare $argument1 $argument2");
   chdir($old_path);
   echo "<pre>$outcome</pre>";
?>

该脚本正在调用 Bash 脚本“索卡雷”可在系统范围内执行,并且位于“/usr/local/bin” 是. 变量$参数1$参数2通过“表单.htm”通过$term1 = $_POST['查询1'];$term2 = $_POST['查询2'];。Bash 脚本如下所示。它应该搜索位于“/var/www/html/SOKHJALPMEDEL/”对于同时包含两个搜索词的页面。

#!/bin/bash

pdfgrep -Hn $1 /var/www/html/SOKHJALPMEDEL/*.pdf | cut -f1,2 -d':' > /tmp/sok1.tmp
pdfgrep -Hn $2 /var/www/html/SOKHJALPMEDEL/*.pdf | cut -f1,2 -d':' > /tmp/sok2.tmp
grep -f /tmp/sok1.tmp /tmp/sok2.tmp

exit 0

我一直收到这个错误“/var/log/apache2/error.log”:PHP 通知:未定义索引:/var/www/html/SOKHJALPMEDEL/search.php 第 7 行中 $term2,引用者:http://localhost/SOKHJALPMEDEL/form.htm

任何帮助我清理混乱的帮助都是很好的:-)

/保罗

答案1

这是一个可以完成我想要的工作的脚本:

<?php
   $old_path = getcwd();
   chdir('/var/www/html/SOKHJALPMEDEL/');
   $term1 = $_POST['query1'];
   $term2 = $_POST['query2'];
   ob_start();
   echo "{$term1} {$term2}";
   $var = ob_get_clean();
   $outcome = shell_exec("/usr/local/bin/sokare $var");
   chdir($old_path);
   echo "<pre>$outcome</pre>";
?>

获得我所寻找的功能的关键是这段代码:

ob_start();
echo "{$term1} {$term2}";
$var = ob_get_clean(); 

这将创建变量 $var,它用作 Bash 脚本使用的参数 $1 和 $2。

/保罗

相关内容