İletişim
Yardım
Bugünki Mesajlar
Ajanda
Üye Listesi
Kayıt ol
Home

Navigation
Geri git   DelikanForum.NET > BILGISAYAR-INTERNET / GRAFIK-WEB > Html - PHP - SQL
Cevapla
 
LinkBack Seçenekler

  #1
Alt 20.03.2007, 18:43
 
SeyFull@H - ait Kullanıcı Resmi (Avatar)
 
Üyelik tarihi: 29.07.2005
Mesajlar: 980
Konulara Teşekkür etti: 3
7 Teşekkür aldı 4 Mesajlar için
Php`de Ncurses Kullanımı I

ncurses metin tabanlı konsollar için pencereler oluşturma ve kullanmaya, renklendirmeye, klavye ve fare tuşlarını kullanmaya imkan veren bir kütüphanedir.
Çoğu sistem yöneticisi komut satırında işlem yapacak şekilde betik dilleri yardımı ile bir çok uygulama geliştirmiştir. Php`nin ncurses kütüphanesi ile konsolda ara yüz kullanarak uygulama geliştirebilirsiniz. Diğer betik dillerine benzer ve ihtiyaca uygun bir çok fonksiyonu bulunmaktadır. Peki “bize getirisi ne olur?” diye düşünürsek.
  • Ekranın her yerini isteğinize göre kullanmak.
  • Pencereler oluşturmak ve onları yönetmek.
  • 8 farklı renk kullanmak.
  • Klavye ve fareyi kullanmak
Ncurses ile terminalde pencere oluştururken terminalin boyutundan bağımsız dinamik pencereler kullanabilirsiniz. Buna daha ilerde değineceğim.
Ncurses uygulamalarına dair bir ekran görüntüsü.

Şimdi ncurses fonksiyonlarına giriş yapalım.
Php de bir ncurses uygulaması ncurses_init(); fonksiyonu ile başlayıp ncurses_end(); fonksiyonu ile biter.
ncurses_init(); //ncurses başlat
ncurses_end(); //ncurses bitir
Şimdi örneğimize bakalım.
PHP- Kodu:
#!/usr/local/bin/php
<?php
//ncurses_ornek1.php
   
ncurses_init();
   
ncurses_addstr('Merhaba Ncurses :)');
   
ncurses_getch();
   
ncurses_end();
?>
ncurses_addstr(); Fonksiyonu örnekte de görüldüğü gibi. İçine aldığı string i ekranda gösterir.
ncurses_getch(); Fonksiyonu ise bir tuşa basılana kadar bekler. Bunun yerine sleep(5); yazabilirsiniz bu sayede 5 saniye sonra kendiliğinden son bulacaktır.
Görüldüğü gibi php yi bir betik dili olarak kullandık. Bundan dolayı ncurses_ornek1.php dosyasının başına #!/usr/local/bin/php yani php nin yolunu tanıttık. Bu dosyayı kaydettikten sonra komut satırında ./ncurses_ornek1.php yazarsanız amacınıza ulaşmış olacaksınız.
Şimdi diğer bir örneğimize bakalım.

PHP- Kodu:
#!/usr/local/bin/php<?php//ncurses_ornek2.phpncurses_init();                 ncurses_border(0,0, 0,0, 0,0, 0,0);  $ufake=ncurses_newwin(10,30,7,25);      ncurses_wborder($ufake,0,0, 0,0, 0,0, 0,0); ncurses_refresh();      ncurses_mvwaddstr($ufake,5,5,"Pencere içine yazı");ncurses_wrefresh($ufake); ncurses_getch(); ncurses_end(); ?>ncurses_border(0,0, 0,0, 0,0, 0,0); Fonksiyonu ile ana penceremize border verdik yani kenar çizgilerini belirttik

ncurses_newwin(10,30,7,25); Fonksiyonu ile yeni bir pencere oluşturduk.
ncurses_refresh(); İle ana penceremizi yeniledik.
ncurses_mvwaddstr($ufake,5,5,"Pencere içine yazı"); Oluşturmuş olduğumuz $ufake penceresinde 5,5 kordinatlarında “Pencere içine yazı” string ini gönderdik.
ncurses_wrefresh($ufake); Belirtilen pencereyi yeniler.
Bu sayede pencereli ilk ncurses uygulamamızı tamamlamış oluyoruz.
Şimdi üçüncü örneğimize bakalım.

PHP- Kodu:
#!/usr/local/bin/php<?php//ncurses_ornek3.phpncurses_init();if(ncurses_has_colors()){       ncurses_start_color();          ncurses_init_pair(1,NCURSES_COLOR_RED,NCURSES_COLOR_BLACK);ncurses_init_pair(2,NCURSES_COLOR_GREEN,NCURSES_COLOR_WHITE);ncurses_init_pair(3,NCURSES_COLOR_YELLOW,NCURSES_COLOR_WHITE);ncurses_init_pair(4,NCURSES_COLOR_BLUE,NCURSES_COLOR_WHITE);ncurses_init_pair(5,NCURSES_COLOR_MAGENTA,NCURSES_COLOR_RED);ncurses_init_pair(6,NCURSES_COLOR_CYAN,NCURSES_COLOR_BLACK);ncurses_init_pair(7,NCURSES_COLOR_WHITE,NCURSES_COLOR_BLACK);}for($y=0; $y>7; $y++) {ncurses_move($y,$y+10);ncurses_addstr("selammmm\n");                   ncurses_color_set($y%8);ncurses_refresh();}ncurses_getch();ncurses_end();?>
ncurses_has_colors() Konsolun renginin olup olmadığına bakıyor. Doğru veya Yanlış dönderir.
ncurses_start_
ncurses_has_colors() Konsolun renginin olup olmadığına bakıyor. Doğru veya Yanlış dönderir.
ncurses_start_color();Renk modunu başlatır.
ncurses_init_pair(1,NCURSES_COLOR_RED,NCURSES_COLO R_BLACK); satırını incelersek init in çalışacağı id numarasını verdik. NCURSES_COLOR_RED ile üst rengi , NCURSES_COLOR_BLACK ile arka plan genrini vermiş oluyoruz.
ncurses_move($y,$y+10); Burada çıktının koordinatlarını belirtiyoruz.
ncurses_color_set($y%8); Tanımlanmış renk çiftini değiştiriyoruz. Burada $y%8 işlemi $y nin 8 e bölümünden kalanı vermektedir. Bu sayede her seferinde init in çalışacağı id numarasını verir. Böylece gelen her $y değeri için init_pair çalışır.
Şimdide ncurses uygulamarına title vermeyi öğrenelim.
İkinci örneğimizde
ncurses_refresh(); satırından önce aşağıdaki kodu yazınız.
ncurses_attron(NCURSES_A_REVERSE);ncurses_addstr(' Titlemiz');ncurses_attroff(NCURSES_A_REVERSE);ncur ses_attron(NCURSES_A_REVERSE); İle title alanını açıyoruz ve addstr ilede yazıcağımız string i belirliyoruz ve attroff ilede title alanını kapatıyoruz.
Makalenin başında terminalin satır ve sütun sayılarından (boyutlarından) bağımsız dinamik pencereler oluşturabilirsiniz demiştim. Bunun için /usr/X11R6/bin/resize de verilen satır ve sütun sayılarını bir diziye alıp ncurses uygulamanızı buradan gelen değerlere göre dinamik hale getirebilirsiniz. Bu sayede Konsol u büyüttüğünüzde de uygulamanız bozulmayacaktır.
Bir sonraki makalede ileri seviye bir ncurses uygulaması ile ncurses`te yapılabilecekleri göreceğiz.
Örneklerin php dosyaları ve ekran görüntüleri.
Kaynaklar:
1) http://tr.php.net/manual/pl/ref.ncurses.php
2) http://www.zend.com/pecl/tutorials/ncurses.php
3) http://wiki.freecode.nl/index.php/PHP-ncurses
SeyFull@H isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
  #2
Alt 24.05.2007, 16:54
Özgür Kuş....
 
BaSkEtBoLcU - ait Kullanıcı Resmi (Avatar)
 
Üyelik tarihi: 24.05.2007
Mesajlar: 49
Konulara Teşekkür etti: 0
0 Teşekkür aldı 0 Mesajlar için

saol paylaşımın için
BaSkEtBoLcU isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
Cevapla


Seçenekler

Yetkileriniz
Yeni Mesaj yazma yetkiniz aktif değil dir.
Mesajlara Cevap verme yetkiniz aktif değil dir.
Eklenti ekleme yetkiniz aktif değil dir.
Kendi Mesajınızı değiştirme yetkiniz aktif değil dir.

Smileler Açık
[IMG] Kodları Açık
HTML-KodlarıKapalı
Trackbacks are Açık
Pingbacks are Açık
Refbacks are Açık


Benzer Konular
Konu Konuyu Başlatan Forum Cevaplar son Mesaj
Php`de Ncurses Uygulaması II SeyFull@H Html - PHP - SQL 1 23.03.2007 12:05
ilaç kullanımı ölüme yol açabilir... davam_var Sağlıklı yaşam ve Spor 0 17.03.2007 16:54
Sağlıklı bilgisayar kullanımı nasıldır? jandarma Sağlıklı yaşam ve Spor 0 31.10.2005 13:42
bazı editör programların kullanımı.. Fani Html - PHP - SQL 0 13.09.2002 20:17
Ghost Kullanımı µmmed Hardware ve Software konusunda Sorular, Cevaplar 1 11.09.2002 21:36


Bütün Zaman Ayarları WEZ +2 olarak düzenlenmiştir. Şu Anki Saat: 19:20 .
Powered by vBulletin Version 3.6.8
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Template-Modifikationen durch TMS Web Design by: vbdesigns.de

 
Anasayfa - Arşiv - Yukarı git