Может кто сталкивался?
На PERL читаю данные, потом вызываю программу на PHP для построения графика по ним,
для этого в PERL скрипте пишу:
`/usr/bin/php 'prog.php'`;Возможно ли при этом вызове php-программы передать 2 параметра - значения 2-х переменных, которые вычисляются в PERL скрипте?
( В Интернете есть решение обратной задачи - передачи параметра из PHP в PERL,
http://www.pikalov.kiev.ua/?p=11,
а мне надо наоборот:-)) )
> для этого в PERL скрипте пишу:
> `/usr/bin/php 'prog.php'`;
> Возможно ли при этом вызове php-программы передать 2 параметра - значения 2-х
> а мне надо наоборот:-)) )Децкий сад, куда катится Этот Мир?!</тэ_дЪрама>
$ grep . p?p
p-p:<?php
p-p:var_dump($argv);
p-p:?>
p+p:#!/usr/bin/perl
p+p:print `/usr/bin/php p-p 1 2 3`;
$ ./p+p
array(4) {
[0]=>
string(3) "p-p"
[1]=>
string(1) "1"
[2]=>
string(1) "2"
[3]=>
string(1) "3"
}
$ _
Спасибо.
Я тоже не знаю, куда катится этот мир.
За детсад извините:)
Выяснилось, что если в PERL скрипте, (а не в командной строке) написать так:`/usr/bin/php 'prog.php par1 par2'`;
то prog.php не вызывается. У меня не вызвалась.
Нужно убрать кавычки:
`/usr/bin/php prog.php par1 par2`;- тогда все работает и передается.
Проблема была в кавычках:)
> Выяснилось, что если в PERL скрипте, (а не в командной строке) написать
> так:
> `/usr/bin/php 'prog.php par1 par2'`;
> то prog.php не вызывается. У меня не вызвалась.
> Нужно убрать кавычки:
> `/usr/bin/php prog.php par1 par2`;
> - тогда все работает и передается.
> Проблема была в кавычках:)`/usr/bin/php prog.php 'par1 par2'`;
прокатило бы. в ПХП передался бы ОДИН параметр (с разделителями-пробелами), который распарсить внутри ПХП можно было. Имей это в виду. И почитай о том, как значения в кавычках (разных) интерпритируются.
я проверяла - НЕ прокатило:-). Программа на php просто не вызывается из PERL-скрипта.
У меня.
А без кавычек вызывается.Кроме того, я передаю переменные, а не числа.
И оказалось что в одинарных кавычках подстановки параметра не происходит, то есть например $x идет как $x.bash-4.2$ PI=3.14; echo '$PI'
$PI
bash-4.2$ PI=3.14; echo "$PI"
3.14
> И оказалось что в одинарных кавычках подстановки параметра не происходит, то есть
> например $x идет как $x.уже прогресс. Повторюсь: "И почитай о том, как значения в кавычках (разных) интерпритируются."
> bash-4.2$ PI=3.14; echo '$PI'
> $PI
> bash-4.2$ PI=3.14; echo "$PI"
> 3.14фактически стандарт:
1)"" - двойные кавычки
все, что внутри них, раскрывается интерпритатором по его правилам преобразования значений:
[sysrha@local ~]$ a=5; echo "$a"
52) '' - одинарные кавычки
содержимое транслируется интерпритатором как константная строка:
[sysrha@local ~]$ a=5; echo '$a'
$a3) `` - обратные ковычки
содержимое транслируются интерпритатором, как команда, которая выполняется в отдельном интерпритаторе (оболочка, шелл, shell):
[sysrha@local ~]$ a=5; b=`echo $a`; echo $b
5
[cut]
Про кавычки спасиб:-)
> Про кавычки спасиб:-)кстати более правильный пример про обратные ковычки:
[sysrha@local ~]$ a=5; b=`a=$(($a+1)); echo $a`; echo "a=$a b=$b"
a=5 b=6здесь лучше видно, что содержимое внутри `` обрабатывается отдельным интерпритатором, со своим набором переменных, которые могут наследоваться от родительского шела (значание переменной а после `` в родительском шеле не изменилось, не смотря на манипуляции с этой переменной в дочернем шеле).