Başka bir PHP komut dosyası için bir istek sandbox nasıl?

0 Cevap

Ben içeriğinin bir "operatör" PHP script istekleri yaparak doldurulur, öncelikle Ajax güdümlü sitesi var.

Genellikle bu istekleri Javascript menşei iken başka bir PHP komut dosyası içinde benim operatörü sorgulamak için yararlı olduğunda, durumlar vardır.

Ve ardından json_decode() ile döndü JSON ayrıştırmak - Ben kullanıyorum yöntem aracılığıyla file_get_contents() sorgu dizesi ile bir URL geçmektir.

Çok etkili olmadığını ve okudum - Birden nedenlerden dolayı, ben, bu uygulanmasını önlemek istiyorum ama ... Ben URL istekleri çok daha fazla duyarlı yetmezliğine ne sebeple olduğunu benim hata günlüklerine bakın.

Genel query_operator($query_string)-tipi fonksiyonu ile yakalanan bir çıkış tampon içinde sadece require()-ed operator.php, yapmak benim 1 girişimi ob_get_contents(). Ben de geçici olarak $query_string ayrıştırılan parametrelerle $ _REQUEST dizi sıfırlayın.

Değişken kapsamı ve MySQL bağlantısı ile ilgili sorunlar, özellikle - Bu yaklaşım çok eksiklikleri vardı.

My 2nd girişimi (shell_exec() eşdeğer) ters tırnak operatörünü kullanarak, ve $_REQUEST dizi $argv argümanları haritalama çıkıyor.

Bu yaklaşım aslında çok iyi çalışıyor, ama ev sahibi ben kullanıyorum, PHP (cli) sürümü 4.4.8 ayarlanır - ve ben 5.2.x. gerekiyor Ben (cli) sürümünü geçemezsiniz varsayarsak, bir sorgu dizesi ile, başka bir PHP komut dosyası için bir istek sandbox için bir sonraki en iyi yolu nedir? Herhangi bir öneri büyük takdir.

İşte benim 2 girişimi gibi görünüyor:

function query_operator($query) {
    $query = '--'.str_ireplace('&', ' --', $query);
    $contents = `php operator.php $query`;
    if ($json = json_decode($contents, true)) {
        return $json;
    } else {
        return $contents;
    }
}

0 Cevap