[linux] Re: PHP: parameter passing aan exec
Rob Sterenborg
rob op sterenborg.info
Wo Sep 20 13:29:52 CEST 2006
On Wed, September 20, 2006 12:11, Hans Paijmans wrote:
>
> Is er een goede reden waarom de exec-functie van PHP maar
> drie commandline parameters wil doorgeven???
>
> $command="sh paai_mix hoogte_diff result ".$alpha." ".$beta." x ";
> echo $command; // klopt exec($command,$out,$err);
>
> en vervolgens worden de parameters $4 en $5 niet door paai_mix gelezen. Als
> hetzelfde commando gewoon vanaf de cli wordt gegeven is alles OK.
>
> Weird.
Probeer het eens zonder "sh" en met het complete pad naar "paai_mix".
Bij mij werkt dat gewoon, zie onder.
Gr,
Rob
=====================
$ ./test.php
[cmdline] ./test een twee drie vier vijf
[out] Array
(
[0] => [een]
[1] => [twee]
[2] => [drie]
[3] => [vier]
[4] => [vijf]
)
[cmdline] ./test een twee drie vier
[out] Array
(
[0] => [een]
[1] => [twee]
[2] => [drie]
[3] => [vier]
)
[cmdline] ./test een twee drie
[out] Array
(
[0] => [een]
[1] => [twee]
[2] => [drie]
)
[cmdline] ./test een twee
[out] Array
(
[0] => [een]
[1] => [twee]
)
[cmdline] ./test een
[out] Array
(
[0] => [een]
)
=====================
=====================
$ cat test.php
#!/usr/local/bin/php
<?
$command="./test";
$params=array("een twee drie vier vijf",
"een twee drie vier",
"een twee drie",
"een twee",
"een");
foreach ($params as $param) {
unset($out);
$cmdline = "$command $param";
echo "[cmdline] $cmdline\n";
exec($cmdline, $out, $err);
print "[out] "; print_r($out); print"\n";
}
?>
=====================
=====================
$ cat test
#!/bin/bash
for param in $@; do
echo [$param]
done
=====================
More information about the Linux
mailing list