2011-03-08 12 views
8

Bir php cli komut dosyasından çıktıyı daha azına dönüştürdüğümde ok tuşlarını kullanmak istiyorum. an php de cli sağ acıdır daha az içindenBir cli php komut dosyasından pipetleme yaparken tuş vuruşlarını tanımak için daha az veya daha fazla nasıl alabilirim?

!stty sane 

yürütmek yalnızca sabitlenebilir tty'den, hiç bir şey yapar!

Ben http://www.php.net/manual/en/features.commandline.php#90743 @ bu soruna bir referans buldum ama bu sorun çok aşağıda yer alıyor olsa da, takdir

Herhangi bir yardım :-) bir cevap bulmak için görünmüyor olabilir diğer birçok problem ;-)

cevap

8

Tam olarak bunu yapmak için biraz tweakable arıyordum. Şu anda benim en iyi çözüm olduğunu: istenen etkiye sahiptir, ancak yazmak zorunda için bir pide olan

php blah.php </dev/null | less 

. Görünüşe göre, eğer PHP CLI, stdin'in bir tty olduğunu tespit ettiğinde, tiyoyu linemodaya sokar.

+0

Ben bir pide olsa, bu – Michiel

+1

sadece 'php kojiro

2

Kod dosyanızda exec('stty cbreak'); eklerseniz, bunu düzeltir.

+0

Sadece bu cevabı şimdi gördüm - sadece aradığım şey gibi görünüyor - Teşekkürler! – Michiel

+0

Burada birkaç ayrıntı daha ekledim: http://stackoverflow.com/a/20341430/943279 Bu bir PHP hatası olabilir ve benim sürüm bilgilerimin nerede olduğu ve nerede olmamış olduğumu da ekledim Bu gerçekten bir PHP hatasıdır. –

0

(bana) biraz daha okunabilir olan diğer bir seçenek (. En azından bunun için drush.php değiştirerek, benim için yapar) 'dir:

less -f <(php whatevz.php) 

boru çıkışı çalışırken bu da yararlıdır PHP'nin bilgileri bayrağının: |

less -f <(php -i) 
İlgili konular