hiçbiri
<?php system('php file.php'); ?>
ne
<?php system('/usr/bin/php file.php'); ?>
çalıştı. Neden?
I-!#/usr/bin/php
, vs ile, -q
denenmiş
Sen-f ile aramak gerekiyordu, ama o kadar iyi çalışması gerekir:
<?php system('/usr/bin/php -f file.php'); ?>
Eğer "çalışmıyor" ile ne demek istiyorsunuz?
Eğer onlar komut sanki içeriği outputted olmak istediniz mi? include veya require kullanın.
Eğer bir değişken içeriğini istiyor muydu? backtick operator kullanın.
Eğer ters tırnak operatörü yerine sistemini kullanarak geri komutundan ne olsun görebilirsiniz.
Tüm cevap için teşekkürler!
Geri dönmek ya da bir şey yazmıyor: Kastettiğim 'çalışmıyor' için.
Ben iki dosya A.php var && (tüm izinler ile) b.php ve safe_mode kapalı
b.php
<?php
$a = system('/usr/bin/php -f /Applications/MAMP/htdocs/a.php',$b);
print_r($a);
echo '-'; # for separation
print_r($b); ?>
ve a.php
<?php echo 'hello world'; ?>
Ben tarayıcı (localhost / b.php) den b.php çalıştırdığınızda ve yazdırır:
string(0) "" -int(5)
O $ b değişkeni 5 olduğu anlamına gelir ancak ... 5 ne?
Açıktır ki system function nasıl çalıştığını anlamıyorum. Ne gerçekten ihtiyacınız muhtemelen popen. popen ile işlemini başlatın ve daha sonra örneğin fgets ile çıkış okumak.
Alternatif olarak siz zaten başkaları tarafından önerilen ters tırnak operatörünü kullanabilirsiniz.
Bekle ... Ne aslında burada ulaşmak için çalışıyoruz? Sadece a.php çalıştırın ve tarayıcıya çıktı dönmek? Bu durumda, include o. Ne istediğiniz gibi görünüyor; A.php sizin yayınlanmıştır içeriği ( Php echo 'merhaba dünya'>) görünüyor itibaren.
A.php içeriği daha varsa, o zaman geri gönderebilir ve gerçekten ne yapmak istediğinizi açıklayınız.
}} Demek 'çalışmıyor' İçin: geri dönmek ya da bir şey yazmıyor.
Sunucu üzerinde bir terminal / kabuk almak denemek ve sistem komutu deneyin. Eğer which php php cli doğru yolu bulmak için gibi bir şey kullanabilirsiniz unixy OS ise.
Haklısınız php cli yüklemek mi? Genellikle varsayılan olarak yüklü değildir.
Web sunucusu, bir chroot'u falan yapıyor mu? Belki php cli size sistemi () kullanmaya çalıştığınız ortamda yok.
Bunun yerine bir script aramaya çalıştığınız basit bir system('php -v') yapmaya çalışın. Bunu php sürüm numarası ardından komut dosyası çağrısı doğru çıktı eklemek için olsun.