2015-03-10 3 views
0

Im new to python и пытается передать 2 переменных из PHP в Python. Я могу заставить его не пропускать никаких проблем (с пробелами в строке), но когда я пытаюсь прочитать секунду в sys.argv, он терпит неудачу.Проблема с Python, передающая несколько аргументов

РНР выглядит следующим образом:

$wt = "yes it worked woot"; 
$wt = str_replace(" ","\ ",$wt); 
$pn = "42"; 
ob_start(); 
passthru('/usr/bin/python2.7 /var/www/cronjobs/test.py ' . "$pn " . "$wt"); 
$output = ob_get_clean(); 

ИН test.py я есть:

import sys 

id = sys.argv[1] 
text = sys.argv[2] 

если я удалить sys.argv [2] линия работает нормально, я могу даже передайте строку с пробелами.

не могу видеть, что им делать неправильно.

+0

Какая точная ошибка, которую вы получаете ... что делает простой 'print sys.argv'? –

+0

печать сообщала, что вы ожидаете, я нашел исправление, но остальная часть скрипта, использующего первый аргумент, ожидала целого числа, необходимого для id = int (sys.argv [1]). – Erron

ответ

1

Вы спасаясь струны на этой линии:

$wt = str_replace(" ","\ ",$wt); 

Что означает, что нет второго аргумента. Остановитесь, избегая строк, и это должно сработать.

Смежные вопросы