Параметр pass от php до casperjs / phantomjs

Редактировать: я ответил на свой вопрос, см. Ниже.

ОРИГИНАЛ: У меня есть phantomjs и casperjs, установленные на моем веб-сервере, и они оба работают нормально. Сценарий, который я планирую создать, зависит от пользовательского ввода с моего сайта, который затем передается сценарию casperjs. Поймав немного, я заметил, что я застрял в самой основной задаче ввода пользователя. Как передать переменную от php до casperjs?

Обратите внимание, что это всего лишь тестовые скрипты.

Мой скрипт php

$user_input = $_POST['user_input']; putenv("PHANTOMJS_EXECUTABLE=/usr/local/bin/phantomjs"); exec('/usr/local/bin/casperjs hello.js 2>&1',$output); print_r($output); 

hello.js

 var user_input = "http://example.com/"; var casper = require('casper').create({ verbose: true, logLevel: 'error', pageSettings: { loadImages: false, loadPlugins: false } }); casper.start(user_input, function() { this.echo(this.getTitle()); }); casper.run(); 

Итак, как мне передать $ user_input на hello.js. Моя цель состоит в том, что пользователь может ввести URL-адрес, который затем очищается.

Solutions Collecting From Web of "Параметр pass от php до casperjs / phantomjs"

Я сам нашел ответ.

Кажется, phantomjs и casperjs поддерживают аргументы командной строки http://phantomjs.org/api/system/property/args.html

Теперь мой скрипт выглядит так.

test.php

 $user_input = $_POST['user_input']; putenv("PHANTOMJS_EXECUTABLE=/usr/local/bin/phantomjs"); exec('/usr/local/bin/casperjs hello.js $user_input 2>&1',$output); print_r($output); 

hello.js

 var system = require('system'); var args = system.args; var address = args[4]; //In my case 4 was the argument for $user_input, yours might be different, depending on your server setup. var casper = require('casper').create({ verbose: true, logLevel: 'error', pageSettings: { loadImages: false, loadPlugins: false } }); casper.start(address, function() { this.echo(this.getTitle()); }); casper.run();