Ders Bitti

Okuldan sonra burdayız…

Php ile Excel dosyası işlemleri

Bugünler de baya ihtiyacım olan birşeydi. Php ile Excel’den veri okumak ve bunun yanında bu verileri işleyip Excel’e aktarmak.

Excel dosyaları okumak için şuradaki https://github.com/shuchkin/simplexlsx php classını, hehangi bi veriyi ise Excele aktarmak için şuradaki https://github.com/oliverschwarz/php-excel php classını kullandım.

Şimdi gelelim benim yapmak istediğim şeye! Elimde Excel dosyasında bir liste var. Bu liste öğrenci ad, soyad, sınıf, öğretmen gibi karışık bilgiler içeriyor. Benim amacım bu verileri öğretmen adına göre Excel’de tek tek WorkSheete atmak. Yani herbir öğretmen için bir çalışma sayfası açıp o öğretmene ait öğrenci listelerini eklemek.

Yukarıdaki listeyi aşağıdaki gibi almak için

<?php
$ogretmenler = array('Yasin','Ali','Mehmet','Bekir','Cihan');

//Excele veri ekleyen class
require_once 'php-excel.class.php';

$oku = array();
//Excelden verileri çeken class
require_once 'SimpleXLSX.php';
$xlsx = SimpleXLSX::parse('Excel-dosyalar/liste.xlsx');
//Tüm verileri oku dizisine atalım
$oku=$xlsx->rows();

//Excele verileri aktarmak için classı çağıralım...
$xls = new Excel_XML;

for ($i=0; $i <count($ogretmenler) ; $i++) { 
  $data = array();
  $data[1]=array('SN','Öğr No','Adı Soyad','Sınıfı','Öğretmeni');

  $sn=1;
  foreach ($oku as $key ) {
    if(strstr($key[3],$ogretmenler[$i]))
      {$data[]=array($sn,$key[0],$key[1],$key[2],$key[3]);$sn++;}
  }
  $xls->addWorksheet($ogretmenler[$i], $data);
}
$xls->sendWorkbook('sonuclar.xls');
?>

 

Öncelikle excel dosyasındaki tüm verileri okuyorum, daha sonra önceden belirlediğim öğretmen adlarına göre çalışma sayfası oluşturuyorum. Burada php de strstr(Yaz, aranan kelime) fonksiyonunu kullandım. Daha sonra bunu excele yazıdm. Hepsi bu kadar.

Proje dosyasını indirmek için tıklayınız.


Php ile mesajlaşma sistemi

Merhaba arkadaşlar bu yazımızda Php ve Mysql kullanarak, basit düzeyde bir mesajlaşma sistemi nasıl yapılır onu anlatmaya çalışacağım. 

Arkadaşlar öncelikle mysql veri tabanında mesajlasma adında bir veri tabanı oluşturalım.

Karakter türünü utf8_unicode_ci yaparsanız ve kodlarınızı da Sublime Text programında yazarsanız hiç türkçe karakter sorunu yaşamazsınız. 🙂

Daha sonra veri tabanımızda 2 adet tablo oluşturalım. Bunlar; Daha fazlasını oku

Html Template Sitesini Php’ye Çevirme

Bu yazımızda sizlere herhangi bir Html/Css template sitesini php’ye dönüştürmeyi anlatacam. Peki bu bizim ne işimize yarıyacak! 

Bir html sitesini php ye dönüştürdüğümüzde artık o siteyi düzenlemek çok daha kolay olacaktır. Bunu bir örnek site üzerinden anlatmaya başlayalım. Örnek Html sitesinin adresi: https://bootstrapmade.com/demo/MeFamily/ bu adrese gidip sağ üstte bulunan Free Download a tıklayarak sizde temayı indirebilirsiniz. Temayı indirdikten sonra tema klasörünü, php koldarını çalıştırdığımız dizine kopyalalım. Ben php kodlarını çalıştırmak için Wampserver kullandığımdan C:\wamp64\www klasörüne kopyaladım. 

Bu sitemizi incelediğimizde 5 adet sayfadan oluştuğunu görmekteyiz. Bunlar;

  • index.html
  • ourstory.html
  • events.html
  • gallery.html
  • contact.html

Bizde kod editörümüz yardımıyla 5 adet php dosyası oluşturalım. Bunlar da şöyle olsun;

  • index.php
  • hakkinda.php
  • hakkinda2.php
  • galeri.php
  • iletisim.php

Örnek temamızın kodlarını incelediğimizde 5 sayfanında üst kısmı (head) ve menü (nav) kısmı hemen hemen ayı olduğu için, </nav> kısmına kadar olan kodları kopyalayıp ust.php dosyası olarak kaydedelim.

Alt kısmınıda <footer> dan başlayıp en son yere kadar olan kısmıda alt.php alarak ayrı bir dosyaya kopyalayım.

index.php dosyamızın kodu artık şu şekilde olmalı

<?php
include “ust.php”
?>
index.html de geriye kalan tüm html kodlarını buraya yapıştırıp kaydelim.
<?php
include “alt.php”
?>
[divider]

galeri.php dosyamızda aynı mantıkla

<?php
include “ust.php”
?>
gallery.html de geriye kalan tüm html kodlarını buraya yapıştırıp kaydelim.
<?php
include “alt.php”
?>
[divider]

Aynı mantıkla diğer sayfalarıda bu şekilde düzenleyelim.

ust.php dosyasını ben bu şekilde editledim.

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Me & Family Bootstrap Template</title>

    <!-- Bootstrap -->
    <link href="css/bootstrap.min.css" rel="stylesheet">
	<link rel="stylesheet" href="css/animate.css">
	<link rel="stylesheet" href="css/font-awesome.min.css">
	<link rel="stylesheet" href="css/jquery.bxslider.css">
	<link rel="stylesheet" type="text/css" href="css/isotope.css" media="screen" />	
	<link rel="stylesheet" href="js/fancybox/jquery.fancybox.css" type="text/css" media="screen" />
	<link href="css/style.css" rel="stylesheet">
    <!-- =======================================================
        Theme Name: MeFamily
        Theme URL: https://bootstrapmade.com/family-multipurpose-html-bootstrap-template-free/
        Author: BootstrapMade
        Author URL: https://bootstrapmade.com
    ======================================================= -->
  </head>
  <body>
	<nav class="navbar navbar-default navbar-fixed-top" role="navigation">
		<div class="container">
			<!-- Brand and toggle get grouped for better mobile display -->
			<div class="navbar-header">
				<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target=".navbar-collapse.collapse">
					<span class="sr-only">Toggle navigation</span>
					<span class="icon-bar"></span>
					<span class="icon-bar"></span>
					<span class="icon-bar"></span>
				</button>
				<a class="navbar-brand" href="index.html"><span>Ben & Ailem</span></a>
			</div>
			<div class="navbar-collapse collapse">							
				<div class="menu">
					<ul class="nav nav-tabs" role="tablist">
						<li role="presentation"  class="active"><a href="index.php">Ana Sayfa</a></li>
						<li role="presentation"><a href="hakkinda.php">Bizim Hakkımızda</a></li>
						<li role="presentation"><a href="hakkinda2.php">Hakkında</a></li>
						<li role="presentation"><a href="galeri.php">Galeri</a></li>
						<li role="presentation"><a href="iletisim.php">İletişim</a></li>						
					</ul>
				</div>
			</div>			
		</div>
	</nav>

 

Bundan sonra artık işimiz çok kolaylaştı. ust.php dosyamızı açıp menüyü istediğimiz gibi değiştirdiğimizde bu değişiklik diğer sayfalarda da olacaktır. Sonuçta diğer sayfalar da menüyü ust.php dosyasından alıyor. Aynı şekilde alt.php yide kendimize göre düzenlersek tüm dosyalarda değişiklik olacaktır.

Artık sizde bu basit yöntemle ile istediğiniz bir html temasını kendinize göre rahat bir şekilde düzenleyebilirsiniz. Takıldığınız yer olursa Forum bölümümüzde yardım isteyebilirsiniz.

 

Kod Editörleri

Web tasarımı yaparken hangi kod editörünü kullanıyorsunuz. Bu yazımızda kendi kullandığım bir kaç kod editöründen bahsetmek istiyorum. Bu programlardan bazıları;

  1. Sublime Text 3 (Ücretsiz kullanılabilir)
  2. PhpDesigner (Ücretli; 21 günlük deneme sürümü var)
  3. Notepad++ (Ücretsiz)
  4. PhpStorm (Ücretli; Deneme sürümü mevcut)
  5. Aptana (Ücretsiz)
  6. Visual Studio Code (Ücretsiz, aynı zamanda Windows, MacOs ve Linux sistemlerde de çalışır.)

Sublime Text

sublime-text

Php Designer
phpdesigner8

NotePad ++
notepad4ever

PhpStorm
phpstorm

Aptana Studio
aptana

Visual Studio Code

Yukarıda yazdığım kod editörlerinin hepsini zamanında kullandım. En çok memnun kaldıklarım ise SublimeText ve PhpDesigner kod editörleri oldu. Özellikle SublimeText programının eklentileri ile çok hızlı bir şekilde kodlarınızı yazabiliyorsunuz.

Yukarıda saydığım kod editörleri ile bir çok programların kodlarını rahatlıkla yazabilirsiniz. Bunlar; Html, Php, Css, Javascript, VBScript, C/C++, C#, Java, Visual Basic, Pascal, Assembly, SQL, Perl, Python… gibi bir çok kod yazımını desteklemektedirler.

 

 

Basit İnternet Terimleri -2-

İp (İnternet numarası): İnternete bağlı her bilgisayara verilen bir numaradır. Örneğin: 192.168.10.5 gibi. İnternetteki diğer bilgisayarlar bu bilgisayara verilen bu adres ile ulaşırlar.

DNS (Domain Name System):   Tarayıcınızın adres çubuğuna girdiğiniz site ismini, girmek istediğiniz sitenin gerçekte ikamet ettiği IP adresine çeviren ve internette gezinmeyi kolaylaştıran bir sistemdir. Örneğin hiç kimse şu anda Google’ın ikamet adresi olan 216.58.209.163 adresini tarayıcısına yazmaz. Onun yerine www.google.com yazar ve DNS sunucusu, bu adresi IP adresine yönlendirir.

Email (e-posta): e-posta, internet üzerinden gönderilen dijital mektup. Görsel olarak kâğıt bir mektup ile aralarında büyük bir fark yoktur. E-postalara resim, müzik, video gibi her türlü dosya türü eklenebilir. Her gün dünyada milyarlarca e-posta gönderilmektedir. Ucuzluğu ve kolaylığı nedeniyle kâğıt mektuplardan daha yaygın olarak kullanılmaktadır.

Günümüzde Google, Yandex, Hotmail, Mynet gibi birçok site ücretsiz olarak e-posta hesabı vermektedir. Eğer bir eposta hesabınız yoksa bu sitelerden bir eposta hesabı alıp arkadaşlarınızla çok rahat iletişime geçebilirsiniz.

Blog (Web günlüğü): İnsanların öğrendiklerini, bildiklerini, paylaşmak istediklerini yazdığı web tabanlı bir sistemdir.

Blog, Web ve Login (weB-LOGin) kelimelerinin birleşmesiyle oluşan bir kelimedir. Burada web, interneti, log ise içerik girmeyi temsil ediyor.

Forum: İnternet üzerindeki tartışma platformu ve paylaşım sistemidir.

Forum alanına girildikten sonra ilgili kategori seçilir ve bu kategoriye bağlı olarak;

Yeni bir konu başlığı oluşturulur. Bu konu başlığına diğer kullanıcılar yorumlarını (cevaplarını) yazarak fikirlerini beyan ederler.

Bilgilendirici, Eğitici, Öğretici Konular paylaşılır ve kullanıcılar yapamadıkları şeyler hakkında bu konulardan destek alır.

Sosyal Ağ: Bireylerin, diğer insanlarla internet üzerinden tanışıp iletişim kurabildikleri ortamlardır. Günümüzde Facebook, Twitter, Google plus, Instagram gibi birçok sosyal ağ siteleri mevcuttur.

Chat: Türkçe “Sohbet” anlamına gelmektedir. İnternet üzerinden insanların bir takma ad kullanarak (nickname) sohbet edip eğlenebileceği ortamdır. Chat hem internet siteleri hem de çeşitli programlar aracılığı ile yapılabilir. Chat, internet üzerinde hiç tanımadığınız rastgele biriyle yapılabildiği gibi tanıdığınız kişilerle de yapılabilir.

Basit İnternet Terimleri -1-

www (World wide web ): Dünyayı saran internet ağı.

Download: İnternetten kendi bilgisayarımıza dosya indirme. Örneğin internetten bir program veya oyun indirmek gibi.

Upload: Kendi bilgisayarımızdan bir internet sitesine dosya gönderme. Örneğin bilgisayarımızdaki bir videoyu Youtube’ye yüklemek gibi.

Browser (Tarayıcı): Web sayfalarını göstermek için kullanılan programlardır. İnternet Explorer, Mozilla Firefox, Google Chrome ve Opera günümüzde en çok kullanılan web tarayıcılardır.

Server (Sunucu): Daha çok “Server” veya “Ana Makine” olarak bildiğimiz sunucular, yapılandırılan herhangi bir ağ üzerinde bilgileri veya uygulamaları kullanıcılara paylaştıran, donanım ve yazılım bileşenlerinden oluşan özel bir bilgisayardır.

Sunucu, sunduğu hizmete göre farklı şekillerde adlandırılır.

Örneğin sunucu, bir veritabanı hizmeti sağlıyorsa “veritabanı sunucusu” bir “web server” olarak hizmet veriyorsa “Web sunucusu” olarak adlandırılabilir.

Client (İstemci): Bir ağ üzerinde, sunucu bilgisayarlardan hizmet alan kullanıcı bilgisayarlarıdır. Bilgiye erişim yetkileri sunucu tarafından belirlenir. Eğer bir bilgisayardan Internete bağlanılarak web siteleri ziyaret ediliyorsa o bilgisayar İstemci(Client) bilgisayardır. Yani istemci bilgisayarlar, Sunucu bilgisayarlara bağlanarak onlardan bilgi alırlar.

Hosting (Barındırma): Web sayfanıza ait dosyaları saklayan ve internet kullanıcılarının erişimine sunan  bilgisayarlara web hosting denir.

MBPS: MBPS ya da megabit internetin standart hız birimidir. “Mega Bits Per Second” yani 1 saniyede kaç mega bit veri aktarıldığını ifade eder.

Megabayt ile Megabit arasında ki fark nedir?

Bir bayt 8 bitten meydana gelmektedir. Dolayısıyla megabitin kaç megabayta denk geldiğini öğrenmek için onu 8’e bölmemiz gerekmektedir. Örneğin 100 Mbps hızına sahip bir internet paketiniz varsa bunun anlamı şudur.

Saniyede 12.5 Megabayt veri hızı elde edersiniz. Ortalama bir film 700 MB olduğu düşünelim. Yani 56 saniyede bu filmi inidrebilirsiniz. Ancak bu sadece sizin hızınıza bağlı bir durum değildir, karşıdan veri indirdiğiniz serverın durumuda indirme hızınızı etkilemektedir.