Ben bazı API çağrıları / ekran kazıma yapmak için kullanılıyor, bir Ruby komut dosyası var, ama bizim ana app PHP olduğunu. Bizim PHP uygulaması Ruby komut aramak için () shell_exec kullanıyor.
Komutu çağrıldığında ruby script harika çalışıyor hat-ama PHP'nin kabuk exec üzerinden çağrıldığında rastgele erken çıkılıyor olacaktır.
İşte Ruby komut bir örnek:
#!/usr/bin/env ruby
require 'rubygems'
require 'mysql'
require 'net/http'
require 'open-uri'
require 'uri'
require 'cgi'
require 'fileutils'
# Bunch of code here ... works fine
somePath = 'http://foo.com/bar.php'
# Seems to always exit when I do a Net::HTTP or open-uri call
post = Net::HTTP.post_form(URI.parse(somePath),{'id'=>ID,'q'=>'some query'})
data = post.body
# OR
data = open(somePath).read
# More code here ...
Yani, şimdiye kadar çıkarabiliriz tüm Ben net / http veya açık-uri çağrıları yoluyla harici bir URL okuma / kapmak çalıştığınızda her zaman çıktıktan olmasıdır. Ben atlayacağım sayfalar POST kabul veya GET istekleri, ama her iki şekilde çıkmadan gibi görünüyor olabilir.
Ben shell_exec çağrısından sonra PHP ile sonuç çıktısı değilim, ama hiçbir hata iletileri veya çıkar vardır. Ben burada ve orada ".... koyar" ile benim Ruby komut dosyası tarafından mesajları olmaktan çıktı var. Bir sorun (ben 'hayır' daha erken koyar mesajlar ile çıkmak değil, çünkü düşünüyorum) olabilir mi?
Kabuk çağrıldığında Yine, iyi çalışıyor. Bu shell_exec çağrı bitirmek için net / http çağrı için bekleyen değil, neredeyse gibi.
Herhangi bir fikir?