Windows üzerinde PHP CLI için Seçenekleri

5 Cevap php

Ben bazı küçük masaüstü komut satırı uygulamaları yazmak için şu anda windows üzerinde PHP CLI ile çalışıyorum.

Bunun mümkün olabileceğini ve nasıl bilmek istedim:

  • Ekranı temizlemek (cls normal komut ama exec olurdu () onunla çalışmaz)
  • Çıkış parçalarının rengini değiştirmek, rengini değiştirin (daha önce programlarında bu görüldü)
  • Işler hızla okunmaz olsun - komut satırı yatay büyütebilir

Yukarıdaki herhangi bir PHP komut dosyası içindeki mümkün mü?

5 Cevap

Windows'ta, standart CLI istemi, (Spudley tarafından cevap gibi) renkli yapamazsın çıktı.

Daha sonra Düzen sekmesinden değerleri ammending, komut penceresinin başlık çubuğuna sağ tıklayıp Özellikler seçerek bir kullanıcı olarak pencerenin boyutunu değiştirebilirsiniz. Ben içinde PHP CLI genişliğini değiştirilmesi mümkün mümkün olduğunu sanmıyorum.

Yazdığım işlevini kullanarak Windows CLI pencerenin genişliğini here kontrol edebilirsiniz

Ben PHP ile küçük bir yedekleme komut dosyası oluşturulur ve ben hatırlıyorum ne, içerik kaldırmak için backspace karakterleri yazdırabilirsiniz. Gerçekten ideal olsa.

Sadece google'd ver: http://www.php.net/manual/en/features.commandline.php#77142

Bkz PHP manual page for working with the commandline

Doğrudan her bir madde cevaplamak için:

Ekranı temizlemek için bir işlev verir sayfada bir yorum var. Ben burada sizin için teklif edeceğiz:

<?php
  function clearscreen($out = TRUE) {
    $clearscreen = chr(27)."[H".chr(27)."[2J";
    if ($out) print $clearscreen;
    else return $clearscreen;
  }
?>

Renkleri değiştirmek için nasıl açıklar bir başka yorum da var. Yine, ben teklif edeceğiz:

<?php
echo "\033[31m".$myvar; // red foreground
echo "\033[41m".$myvar; // red background
?>

ve sıfırlamak için:

<?php
echo "\033[0m";
?>

Sen CLI işlemek için nasıl bir bütün yük daha fazla öneri için o sayfanın kalanında okumalısınız.

Cevapsız bırakmak Sorunuzun sadece bir bölümünü üçüncü madde noktasıdır. Ne yazık ki, ben bunu yapmak mümkün olacak inanmıyorum, ve ben yatay Windows komut satırı penceresi yeniden boyutlandırmak mümkün olduğunu sanmıyorum.

Umut olur.

Bildiğim kadarıyla üçüncü soru gider gibi, ben seni Console 2 için varsayılan komut satırını cadı öneririz. Bu sürece (bu ekrana uygun olarak) istediğiniz genişliği kullanmanızı sağlar, ama aynı zamanda komut geçmişi, sekmeler ve bazı UI şeker destekler sadece büyük bir yedek.

PHP windows altında komut penceresine bir şey yok, çünkü sağlanan kodu Windows altında çalışmaz. PHP ne emin değilim ama sadece iki satır basit bir FreeBasic program yazdı:

   cls
   end

Ben o zaman derlenmiş ve düzenli bir komut satırı penceresi altında koştu. Bu sorunu her türlü olmadan ekran temizlenir. Daha sonra PHP aşağıdaki etmedi:

<?php
   echo "This is a test\n";
   system( "cls.exe" );
   exec( "cls.exe" );
   passthru( "cls.exe" );
?>

Ben programı çalıştırdığınız sadece "Bu bir denemedir" hattına daha fazla hiçbir şey yapmadı. Böylece, arar ve meydana gelen kaçış dizisi her türlü durur PHP ile devam bastırma çeşit var. Bu PHP giderilene kadar - bir cls yapmak mümkün, ne küfürler, ncurses, ya da diğer herhangi bir kütüphane kullanmak asla. Ne yapılmalı o dilin metodolojileri aracılığıyla yeni bir pencere açmak ve metin penceresini yapmak için bunları kullanacak bir sınıfın çeşit (veya rutin belki sadece bir C kümesi) olarak FreeBasic en pencerelemeler yöntemleri gibi bir şey entegre etmektir. Sonra kaçış dizilerinin tüm çalışacaktır. O zamana kadar - yapmayacaklar.

Bu konuda ne tuhaf buluyorum PHP aslında Perl ve Perl herhangi bir sorun olmadan Windows ncurses yapacak yazılmış olmasıdır. Perl ayrıca tüm kaçış dizileri çalışmalarına olanak tanıyacak. Dolayısıyla, sadece Windows üzerinde yapılıyor şey bu soruna neden olan derlemek var.