- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Зачем быть уникальным в мире, где все можно скопировать
Почему так важна уникальность текста и как она влияет на SEO
Ingate Organic
VK приобрела 70% в структуре компании-разработчика red_mad_robot
Которая участвовала в создании RuStore
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Опять требуется помощь "зала".
В недавней теме разбиралась, как обойтись без функции PHP-virtual
Разобралась. Заменила функциями PHP-system и PHP-exec
Но опять затык...
Через эту функцию у меня запускаются CGI-скрипты
Например:
{?php
system ('cgi-bin/script.cgi?parameter=XX');
?}
или
{?php
echo exec ('cgi-bin/script.cgi?parameter=XX');
?}
В virtual такая конструкция работала. А здесь скрипт исполняется только, если без параметров (левее вопросительного знака). С параметрами выдает пустое значение. Хотя сам скрипт написан корректно и при непосредственном запуске выдает то, что нужно.
Я плохо знаю PHP и затрудняюсь разобраться.
Экранировать вопросительный знак обратным слешем пробовала - не помогает.
В чем тут проблема и как ее решить?
Помогите, пожалуйста.
Конструкция script?parameter=XX работает, только если обращение происходит через вебсервер. При этом инициализируется массив GET - то что пришло в URL. Командная строка ничего не знает про GET, URL, поэтому если необходимо передавать параметры скрипту в командной строке, то нужно переписать скрипт так, чтобы он забирал необходимые параметры и их значения из массива $argv
http://php.net/manual/en/reserved.variables.argv.php
http://php.net/manual/ru/features.commandline.php
$ php test.php --foo --bar=baz
["foo"] => true
["bar"] => "baz"
http://stackoverflow.com/questions/6273791/calling-exec-on-a-php-file-and-passing-parameters
Большое спасибо!
Проблема, действительно, решилась не просто, а очень просто. :)
Переписала выражение
{?php
system ('QUERY_STRING=parameter=XX cgi-bin/script.cgi');
?}
и все прекрасно заработало.
С echo exec точно также все работает.
Я плохо знаю PHP и затрудняюсь разобраться.
Экранировать вопросительный знак обратным слешем пробовала - не помогает.
В чем тут проблема и как ее решить?
Помогите, пожалуйста.
В документации на функцию virtual() http://php.net/manual/ru/function.virtual.php, в комментариях есть примеры как заменять её exec и установкой переменных окружения.
Прочитайте, и воспользуйтесь, ничего такого уж хитрого, особенно учитывая то, что вы владеете perl.
UPD: Упс, уже решили - поздравляю. =)
Это все касается обычных параметров, но CGI работает не так. Опять же легко догадаться если иметь опыт программирования на perl/cgi.
В комментариях к функции virtual http://php.net/manual/ru/function.virtual.php
есть пример где создают QUERY_STRING и что-то подобное нужно соорудить.