Eğer bir CGI script çıktı PHP kodu gömebilirsiniz?

4 Cevap php

Ben ile çalışıyorum bir CGI tabanlı bir form var ve ben oluşturulan sonuçlarında bazı PHP kodu dahil edebilmek istiyorum. Bunu Ancak, PHP işlenmiş ve sadece çıkan web sayfasında görüntülenen biter almak için görünmüyor.

Ben aslında mümkün yapıyorum ya da ben bir şey eksik nedir?

Teşekkürler.

4 Cevap

Hayır, bu mümkün değil. Sen ki, ancak bir PHP komut dosyası, include('http://url.to/cgi/script'); ve sonra yerine CGI komut daha PHP script tarayıcınızı etmektedir. Bu PHP, sunucuya yeni bir bağlantı açmak CGI komut dosyası çalıştırmak, ve sonra bir PHP komut sanki çıkış bulunuyor ayrıştırmak için neden olacaktır.

EDIT2: Burada dosya yüklemeleri dahil postData ile bunu yapabileceğini nasıl:

// Edit to match your CGI URI:
$url_to_cgi = "http://{$_SERVER['SERVER_NAME']}/cgi-bin/something.cgi";

$curl = curl_init($url_to_cgi);
curl_setopt($curl,CURLOPT_POST, true);
curl_setopt($curl,CURLOPT_RETURNTRANSFER, true);

// Pass POSTDATA along to the CGI script:
$postdata = $_POST;

// If we have file uploads, pass those along too:
if(is_array($_FILES)) foreach($_FILES as $key => $file)
  $post[$key] = "@{$file['tmp_name']}";

curl_setopt($curl,CURLOPT_POSTFIELDS, $postdata);

$file = tempnam('/tmp','php-curl-');
file_put_contente($file, curl_exec($curl);

include($file);

unlink($file);

Bu denenmemiş var unutmayın ...

No PHP bir sunucu tarafı dilidir. PHP kodu sunucu üzerinde yürütülmelidir. Çıktınıza eklerseniz sonra kod, kullanıcının web tarayıcısı TCP bağlantısı üzerinden gönderilir.

Bunun yerine PHP baskı, system("php myscript.php") aracılığıyla gibi php yürütülebilir, çağırarak deneyin.

PHP çıktıda HTTP başlıklarını tam bir kümesini görüntülemek için sever, bu yüzden size CGI çıktı ortasına çalıştırmak eğer aradığınız oldukça ne alamayabilirsiniz dikkat edin.

Bu PHP çözümleyici vurur önce PHP kodu sayfasında koymak ediliyor emin olun.

Ben bu sayfaya bir CGI komut dosyası ve çıkış çalıştırmak için PHP kullanarak bir başarı elde ettik, ancak genellikle bu doğrultuda iade kodu falan değerlendirmek zorunda.

Sen PHP CGI komut dosyası da dahil olmak üzere bazı hile yapmak mümkün olabilir. PHP zamanını varsayarak kabul ve senaryo o (komut çalıştırmak olacaktır ve kod böylece kodunuzu doğru işlenmiş olmalıdır, sayfa tam olarak ayrıştırılır önce iade) hile yapmak gerekir, geçerli PHP kodu döndürür olacaktır.

Orada bunu işlemek için daha resmi yollar olabilir, ancak bu benim için çalıştım.

Sonunda. Apache2 filtresi denilen bir şey vardır. mod_ext_filter CGI çıktı almak ve yine PHP ile geçmek mümkün olabilir.

However, I'm not sure this is what you want. And if, how to configure it. But just have a look here: http://httpd.apache.org/docs/2.2/filter.html