Передача переменной из sqlplus в unix, а затем в php - PullRequest
1 голос
/ 19 октября 2011

У меня есть скрипт php, который вызывает скрипт оболочки. Сценарий оболочки запускает команды sql, а выходные данные передаются в переменную оболочки. Теперь, как мне передать эту переменную в PHP-скрипт?

Например: код PHP:

$_param1 = "JOHNDOE";
$out = exec("sh shellscript.ksh $_param1");
echo $out;

Shell Script:

#!/bin/sh -u

param=$1;

out=`sqlplus -s $connectStr <<EOF

set serveroutput off;
set feedback off;
set heading off;
set pagesize 0;
set verify off;
set echo off;

select field from sometable where condition ='$param';
exit;
EOF`

echo $out;

Мне нужно перевести $ out на страницу PHP. Есть ли способ, кроме создания файла?

1 Ответ

0 голосов
/ 19 октября 2011

Передать $ out в качестве параметра 'exec', чтобы возвращаемый результат оболочки был сохранен в этой переменной.

myshell.sh

#!/bin/bash
echo $1

myphp.php

<?php
$param = "HEY, this is Output";
exec("sh myshell.sh \"${param}\"", $out);
print_r($out);
?>

Затем вызовите PHP-скрипт

$ php myphp.php 
Array
(
    [0] => HEY, this is Output
)

Возможно, у вас возникли проблемы с разрешением при запуске Shell или даже с настройкой PHPможет быть не так.

...