Сценарий Ruby Mechanize завершается ошибкой при выполнении PHP, но работает по SSH с Putty

Я пытаюсь запустить скрипт Ruby, который очищает какой-то URL-адрес и выполняет его из PHP.

Это мой код PHP:

PHP:

$url = 'https://www.example.com';

$result= shell_exec("ruby script.rb $url");

echo 'result is:';

echo $result;

У меня есть два разных кода, один основан на Curl, и он работает:

Рабочий код Ruby:

value = `curl #{ARGV[0]} | grep "findMe:"`
result = value.scan(/findMe: (.*)/).flatten.first.split('$').last.gsub(',', '').to_f
puts result

Но другой использует Mechanize Gem, и он не работает с PHP:

Нет рабочего кода:

require 'time'
require 'mechanize'

url = ARGV.first

begin
page = Mechanize.new.get(url).content
result = page.match(/findMe: "\$(.+)"/)[1].tr(',', '')

# Uncomment following line to see date and time in output
# output = Time.now.strftime('[%F %T %z] ') + result

# Uncomment following line to see only result in output
output = result

# Output the result on terminal
puts result

rescue => detail
puts detail.message
end

Но из SSH, используя Putty, оба сценария Ruby работают отлично.

Так как же может случиться так, что один из них не сможет выполнить PHP?

Обновить:

Как мне посоветовали, я изменил оболочку на:

$result = `ruby script.rb "$url" 2>&1`;

Это ошибка:

результат: script.rb: 2: в `require ‘: нет такого файла для загрузки — механизировать
(LoadError) из script.rb: 2

Может быть, это связано с путями, но я не уверен, как их правильно изменить

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]