The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"PERL: передать параметры во внешнюю прогу на PHP"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (Perl)
Изначальное сообщение [ Отслеживать ]

"PERL: передать параметры во внешнюю прогу на PHP"  +/
Сообщение от Chainikk email(ok) on 14-Мрт-13, 22:00 
Может кто сталкивался?
На PERL читаю данные, потом вызываю программу на PHP для построения графика по ним,
для этого в PERL скрипте пишу:
`/usr/bin/php 'prog.php'`;

Возможно ли при этом вызове php-программы передать 2 параметра - значения 2-х переменных, которые вычисляются в PERL скрипте?

( В Интернете есть решение обратной задачи - передачи параметра из PHP в PERL,
http://www.pikalov.kiev.ua/?p=11,
а мне надо наоборот:-))   )

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "PERL: передать параметры во внешнюю прогу на PHP"  +/
Сообщение от Andrey Mitrofanov on 14-Мрт-13, 22:42 
> для этого в 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"
}
$ _

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "PERL: передать параметры во внешнюю прогу на PHP"  +/
Сообщение от Chainikk (ok) on 18-Мрт-13, 17:55 
Спасибо.
Я тоже не знаю, куда катится этот мир.
За детсад извините:)


Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "PERL: передать параметры во внешнюю прогу на PHP"  +/
Сообщение от Chainikk (ok) on 19-Мрт-13, 16:47 
Выяснилось, что если в PERL скрипте, (а не в командной строке) написать так:

`/usr/bin/php 'prog.php par1 par2'`;

то prog.php не вызывается. У меня не вызвалась.

Нужно убрать кавычки:
`/usr/bin/php prog.php par1 par2`;

- тогда все работает и передается.

Проблема была в кавычках:)

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

4. "PERL: передать параметры во внешнюю прогу на PHP"  +/
Сообщение от LSTemp (ok) on 21-Мрт-13, 01:38 
> Выяснилось, что если в PERL скрипте, (а не в командной строке) написать
> так:
> `/usr/bin/php 'prog.php par1 par2'`;
> то prog.php не вызывается. У меня не вызвалась.
> Нужно убрать кавычки:
> `/usr/bin/php prog.php par1 par2`;
> - тогда все работает и передается.
> Проблема была в кавычках:)

`/usr/bin/php prog.php 'par1 par2'`;
прокатило бы. в ПХП передался бы ОДИН параметр (с разделителями-пробелами), который распарсить внутри ПХП можно было. Имей это в виду. И почитай о том, как значения в кавычках (разных) интерпритируются.


Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

5. "PERL: передать параметры во внешнюю прогу на PHP"  +/
Сообщение от Chainikk email(ok) on 21-Мрт-13, 22:15 
я проверяла - НЕ прокатило:-). Программа на php просто не вызывается из PERL-скрипта.
У меня.  
А без кавычек вызывается.

Кроме того, я передаю переменные, а не числа.
И оказалось что в одинарных кавычках подстановки параметра не происходит, то есть например $x идет как $x.

bash-4.2$ PI=3.14; echo '$PI'
$PI
bash-4.2$ PI=3.14; echo "$PI"
3.14

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

6. "PERL: передать параметры во внешнюю прогу на PHP"  +1 +/
Сообщение от LSTemp (ok) on 23-Мрт-13, 02:54 
> И оказалось что в одинарных кавычках подстановки параметра не происходит, то есть
> например $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"
5

2) '' - одинарные кавычки
содержимое транслируется интерпритатором как константная строка:
[sysrha@local ~]$ a=5; echo '$a'
$a

3) `` - обратные ковычки
содержимое транслируются интерпритатором, как команда, которая выполняется в отдельном интерпритаторе (оболочка, шелл, shell):
[sysrha@local ~]$ a=5; b=`echo $a`; echo $b
5


Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

7. "PERL: передать параметры во внешнюю прогу на PHP"  +/
Сообщение от LSTemp (ok) on 23-Мрт-13, 05:51 
[cut]


Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

8. "PERL: передать параметры во внешнюю прогу на PHP"  +/
Сообщение от Chainikk email(ok) on 23-Мрт-13, 16:23 
Про кавычки спасиб:-)


Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

9. "PERL: передать параметры во внешнюю прогу на PHP"  +/
Сообщение от LSTemp (ok) on 25-Мрт-13, 05:38 
> Про кавычки спасиб:-)

кстати более правильный пример про обратные ковычки:
[sysrha@local ~]$ a=5; b=`a=$(($a+1)); echo $a`; echo "a=$a b=$b"          
a=5 b=6

здесь лучше видно, что содержимое внутри `` обрабатывается отдельным интерпритатором, со своим набором переменных, которые могут наследоваться от родительского шела (значание переменной а после `` в родительском шеле не изменилось, не смотря на манипуляции с этой переменной в дочернем шеле).

Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру