1. Php Ekşin - Temel Php İşlemleri
Yazar: Teknik Öğretmen ve Bilgisayar Teknikeri Şahabettin Akca
Giriş: Php ile ilgili; nasıl öğrenirim, nasıl başlayabilirim, neler yapabilirim, vb. gibi
konularda bir çok soru günlük hayatımda karşılaşmaktayım. Bu tarz sorulara cevap olması
açısından 2007 senesinde kısıtlı vaktimde ele aldığım bir yazıydı henüz toyduk(teknikerlik
öğrencisi iken) o zamanlar biraz hızlı ilerlemişiz. Fakat yine de faydalı bilgiler içerdiğini
düşündüğüm için paylaşıyorum. Not: Vakit ve enerji bulabilirsem güncelleme yapmayı umut
ediyorum.
Php ile hemen hemen yazılım üzerine her istediğinizi yapabilirsiniz. Kendi yaptığım projeler
olarak e-ticaret,staj otomasyonu, dijital arşivleme sistemi ( bir sürü fiziksel kağıt,klasör,
dolap yerine sadece 1 Hdd de saklanması),haber, video, oyun sitesi, deprem analizlerinin
yapılması, ortam sıcaklığı ve neminin güncellenip alarm sistemine bağlanması ve sürekli
çevrim içi olarak yayınlanması, Mobil olarak android uygulamalar için kullanılması vs. Wamp
kurup kişisel bilgisayarınızda testlerinizi gerçekleştirebilrisiniz.
Php nedir?
PHP- Kodu:
<?php ?>
arasındaki herşeydir
kısa tag olarak <? olarakta yazılabilir
PHP- Kodu:
<? ... ?>
gibi
nasıl yazarım
nereden başlıyalım önce php ile ekrana yazmayı görelim
PHP- Kodu:
<? echo'saho'; ?>
burada yazdırdık ama ' ' ile yazdırdık bir değişken yazdıracağımızda değişken değil düz
metin olarak çıktı verilir ama henüz değişken nedir bilmiyorsunuz. o yüzden hemen
değişkeni anlatalım
$degisken='degisken iceri verisi';
veya
$degisken="degisken iceri verisi";
gibi tanımlanır yine üstteki kısım
' ' arasında kod var ise değişken olarak değilde metin olarak algılar " " arasında olursa
değişken oolduğunu anlar echo ile değişken basmaya devam örnek
PHP- Kodu:
<?
$saho='saho değişken değeri';
echo'$saho';
?>
bu ekrana
$saho çıktısı verir
ama
PHP- Kodu:
<?
2. $saho='saho değişken değeri';
echo "$saho";
?>
ekrana
$saho değişkenin içini yani
saho değişken değeri
ini bastı yapar
bir püf noktası mesala
PHP- Kodu:
<?
echo'<table><tr><td>...
<form .....
<input ...';
?>
gibi bir yazımdan
?>[/php]
<table><tr><td>...
<form .....
<input ...
PHP- Kodu:
<?
yazımı daha hızlı derlenmesine ve daha hızlı çıktı vermesine etki eder bu yüzden bu
şekilde kullanılmalıdır bu kısımlarda ise pratik ve kısa yazımlar için bir püf noktası
?>
<table><tr><td>...
<form .....
<input name='saho' value='<?=$saho;?>'>
<?
gibi
PHP- Kodu:
<?= değişken ;?>
gibi kısadan yazılabilir değişken içeriği bastırılabilir
değişkenlere geri dönersek
değişkenleri uc uca ekleyerek toplayabiliriz
$degisken3=$degisken2.$degisken1;
gibi yan yana eklenebilir burada mesala bir çok şey yaplabilir mesala aralarına ayraç
koyabilirsiniz
$degisken3=$degisken2.'ayraç'.$degisken1;
gibi php de metin gireceğimizde bu aralıkta
. ile durdurur ' ile metin kısmını açar ' ile kapar .
ile php metini bitiririz, yine ' ' - " " basması geçerlidi değişken kullanmayacaksak ' ' ile metin
girişi yapıp az da olsa sayfanızın hızlı derlenmesini sağlayabilirsiniz.
değişkenlerde sıkıntınız varsa ek olarak yazabilirsiniz
php de ölümcül nokta
if lere geldik aslında programlama nın temeli if tir
aslında if herşeydir hadi layn nerden çıkardın diyenlere kapak geliyo
if e yani programlamacılığa ekşin yapıyoruz
önce kısa gösterimler daha sonra kapak etme mevzusuna dönecem
PHP- Kodu:
<?
$saho='sahoooo';
if($saho=='sahoooo') {
şartımız sağlanıyorsa
}
3. ?>
şimdi bir de şey var şartımız sağlanmıyorsa
bunun için epey yöntem var zihnimde 3 tanesi yeterli : ) gibi yazarız 1 ara
yöntem -1
PHP- Kodu:
<?
$saho='sahoooo';
if($saho!='sahoooo') {
şartımız sağlanmıyorsa
}
?>
== yerine != yaparak eşit değilse yapabiliriz
yerini değiştiremezsiniz =! yaparsanız synatx error verir : ) != gibi kullanımı söz konusu
yöntem -2
PHP- Kodu:
<?
$saho='sahoooo';
if($saho<>'sahoooo') {
şartımız sağlanmıyorsa
}
?>
yine eşit değilse diğer php nin temel yöntemi
yöntem -3
PHP- Kodu:
<?
$saho='sahoooo';
if($saho=='sahoooo') {
şartımız sağlanıyorsa
} else {
şartımız sağlanmıyorsa
istediğimizi elde edemediysek
}
?>
hemen basit bir örnek türkiye ip leri başlangıcı 85 var mesala
PHP- Kodu:
<?
$turk_ip='85';
$adamin_ip=substr($_SERVER["REMOTE_ADDR"],0,2);
if($turk_ip==$adamin_ip) {
türkse gösterilecek sayfa
burada genelde
include"turkce_index.php";
} else {
türk ip si değilse
include"digerdiller_index.php";
}
?>
noluyo görsetmediğin şeyler var burada derseniz
2 şey var
1- substr
2- include
hemen yan başlık açalım onlara
4. substr bir değerin içeriğinin sayısal olarak uzunluklarına göre alınmasını sağlanır
he birde
$_SERVER["REMOTE_ADDR"] var buda kişinin ip sini alır
kişinin ip sini aldık mesala
85.12.98.127 gibi bir şey
bunu substr ile
substr($_SERVER[REMOTE_ADDR],0,2);
yaparak adamın ip sini al 0 dan başla 2 tane karakterini al dedik ve 85 i elde etmiş oldu
mesala tr olmayan bir ip ise if de diğer kısım çıkacak substr ın diğer kullanım yöntemleri
mesala
subsr($degisken,-4);
en sağdan tersten 4 karakteri alır soldan başlamz yani şöyle bişi daha var
substr i mesala şurada kullanırsın siteye haber ekleyeceksin makale ekleyeceksin uzun
makale makalenin bir kısmını ana sayfada göstermek için
substr($yazikaynagi,0,255);
255 tane al ilk 255 karakteri al yani sonra kalanları almak içinse şöyle bir yöntem
substr($yazikaynagi,255,strlen($yazikaynagi));
gibi bir şekilde 255 den değişkenin uzunluğu kadar alırsın evet strlen o değişkenin
uzunluğunu sayısal olarak çıktısını verir sonra geçtik nerede kaldıydık ya [IMG]file:///C:/
DOCUME%7E1/Saho/LOCALS%7E1/Temp/msohtmlclip1/01/clip_image001.gif[/IMG]
heh if leri vermişiz
if böyle çok basit diyosan mesala hani programlamanın temeliydi diyosan mesala
phpde süper değişkenler diye bir şey var bunlar
$_GET, $_POST get form la üretilir yada link verilir php sadece form dan üretilir curl cart
curt la zaten suncuuya post attırma mantığı var
link ile mesala
index.php?bolum=saho dersen
PHP- Kodu:
<?
if($_GET["bolum"]=="saho") {
include"saho.php";
} else {
include"index.php";
}
?>
gibi bir kullanım var bunun daha pratiği switch var ama onun mantığı da yine if e dayanıyor
içinde if den farklı bir şey yoktur.biraz daha basit kullanımı işte üsttekini açıklıyım devam
edelim
bolum den gelen değeri
$_GET["bolum"] ile aldık bu saho ya eşitse
saho.php yi sayfaya dahil ettik değilse
index.php yi dahil ettik
mesala 3 sayfanız var saho,deli_dana,index .php adında
PHP- Kodu:
<?
if($_GET["bolum"]=="saho") {
include"saho.php";
} elseif($_GET["bolum]=="deli_dana") {
include"deli_dana.php";
} else {
include"index.php";
}
?>
5. birde mesala get ile verdiğimiz link ile include ettiğimiz dosya adı aynı olmayabilir mesala
PHP- Kodu:
<?
if($_GET["bolum"]=="saho") {
include"sahabettin.php";
} elseif($_GET["bolum]=="deli_dana") {
include"hosaf.php";
} else {
include"index.php";
}
?>
şayet öyle ise bunlarıda dinamik hala getirebiliriz ve sürekli anca dosya adını yazmayabiliriz
mesala şöyle yapabiliriz
PHP- Kodu:
<?
if($_GET["bolum"]=="saho") {
include"$_GET["bolum"].php";
} elseif(=="deli_dana") {
include"$_GET["bolum].php";
} else {
include"index.php";
}
?>
gibi
şimdi kısaca switch igösterem
PHP- Kodu:
<?
switch($_GET["bolum"]) {
case"saho":
include"saho.php";
break;
case"deli_dana":
include"deli_dana.php";
break;
default:
include"index.php";
break;
}
?>
buda mesala üstteki ile aynı işi yapar biraz daha pratik ama temeli if bununda zaten
include ye gelirsek include edersiniz
saho mesala get bolum değeri
saho.php yoksa include hata verir ama sayfayı basmaya devam eder
require ile yaparsanız şöyle
require"saho.php";
sayfada hata verir direk sitenin diğer kısımlarınıda basmaz aslında bu saho.php sitenin
temeli ise gerekli ise kesinlikle require ile sayfa ya dahil edilmelidir ki lamerlerlerin etkilerine
tepkisiz kalmamnız için birde şu var mesala
aynı fonksiyon var saho.php nin içinde fonksiyon ney hemen onada gireyim
PHP- Kodu:
function saho() {
saho fonksiyonunun içeriği
}
gibi mesala saho.php nin içinnde bu var
6. saho.php yi oldu bir yanlışlıkla 2 kez dahil ettiniz veya dinamik bir sayfa bir şekilde 2 kez
dahil olabilir sayfaya kodlarınızın durum ve karmaşası ve mantığı ve algoritmasına göre 2
kez include edildiyse mesala
duplicate function gibi bir hata verebilir yada
duplicate definition yani 2 kez tanımlanmış bu fonksiyon gibi bir hata verebilir yada
saho.php içeriği 2 kez basılır ekrana bunu engellemek için daha önce dahil edilmiş mi bu
şeyler diye kontrol etmek için
PHP- Kodu:
require"saho.php";
yerine
PHP- Kodu:
require_once"saho.php";
yapmak olayı çözer
PHP- Kodu:
include"x";
yeirnede
PHP- Kodu:
include_once"x";
kullanılabilir
kafam dağıldı hemen
for a geçelim mesala
PHP- Kodu:
for($i=0;$i<10;$i++) {
echo $i;
}
gibi yazarsak 1 den 10 a kadar ekrana yazı basar pratk halini yazalım tek satır echo
bastıracaksak for içinde
PHP- Kodu:
for($i=0;$i<10;$i++)
echo $i;
parantezleri kullanmadan da yazdıralabilir mesala
title spam yapmak için yada etiket olayları içinde olabilir bu ben 2 sinide gösterem mesala
$spam=array('izle','indir','gonder');
array ney looo diyecek olursanız array
dizi burasya girdiğimiz izle indir gonder tek değişkene atandı toplu işlemler yapmak için
daha pratik olur bu buna bin bir türlü erişim var php de $spam[0] derseniz izle 0 . saçma
gibi ama 0. değeri alıyor [1] gibi derğerli alıyor mesala for ile şöyle yaparsınız
PHP- Kodu:
$spam=array('izle','indir','gonder');
for($i=0;$i<count($spam);$i++)
echo $spam[$i];
ekrana ard arda spam ın içeriğini dizer
PHP- Kodu:
count($spam)
spam dizi-array ında kaç veri olduğunu ekrana basar mesala 3 tane ise for 3 kez döner ve
tüm içeriğini basar bu amaçla kullandık burada mesala herşeyin temeli if demiştik burada for
ile kullandık ya
bunu diziler için en büyük araç olan foreach ile daha kolay basabliriz mesala
PHP- Kodu:
foreach($spam as $spamx) {
echo $spamx;
}
gibi yine yazdırırsın değeri vs. ile de uğraşmazsın daha pratik daha gelişmiş hali for
buna göre daha ilkel yine bunda da tek satır parantezleri kullanmadan daha hızlı
7. olabilirsiniz zaten bu parantezleri parse -syntax error ların temelidir insanı canından
bezdirebilir ama eskiden di oda [IMG]file:///C:/DOCUME%7E1/Saho/LOCALS%7E1/Temp/
msohtmlclip1/01/clip_image001.gif[/IMG] zend var her satırı gösteriyo parantezleri vs. ama
notepad,notepad++,dreamveawer kullananlar verem olmaya devam forever verem [IMG]
file:///C:/DOCUME%7E1/Saho/LOCALS%7E1/Temp/msohtmlclip1/01/clip_image002.gif[/
IMG]
php ye devam mesala iyide ekrana bu spamı bassak elimize ne geçer şöyle bişide geçer
mesala video siten var
video adı $video_adi adlı bir değişkenin içinde veritabanından çekilmiş duruyo
veritabanından çekmeyi de görecez anca giriyoz o az uzun kafanızı çok dağıtmıyım şimdi
gelmiş değişkende duruyo kabul edelim
$video_adi içinde,
"baptista harika röveşata" yazıyor mesala
title spam yine bu title şeyini meta keyw a da da aktarabiliriz
PHP- Kodu:
foreach($spam as $spamx)
echo $video_adi." ".$spamx;
gibi yaparsak
baptista harika röveşata izle
baptista harika röveşata indir
baptista harika röveşata gonder
gibi çıktılar verir title de süper gider
daha sonra mesala array-dizi ile ilgili
shuffle($spam);
yaparsanız
spam da ki izle indir gonder in [0][1][2] lerin yerlerini değişir
birde arrayların güzelliği var toplu işlem yapabilirsiniz mesala şu
PHP- Kodu:
$_GET["bolum"]
$_GET["obje"]
gibi 15 tane get var bunlara güvenlik uygulaması yapacaksınız ' " vs. bunlardan
kurtaracaksınız
fonksiyonlarada tekrar dönerek göstereyim mesala
PHP- Kodu:
function dizi_duz($dizi) { # dizi dedimiz şey $spam mesala
$kotu_seyler=array('or','union','...');
return str_replace($kotu_seyler,'',addslashes(strtolower(htmlspecialchars($dizi))));
}
gibi dizi_duz enleme fonksiyonumuzu tanımlıyoruz
daha sonra
PHP- Kodu:
foreach($_GET as $saho=>$ankabt)
dizi_duz($_GET[$saho]);
gibi tüm dizi içeriğine dizi_duz de bir kez tanımladığımız tüm olayları uygulayabiliyoruz
daha yazacağım şey var karışıkta olabilir
Yazar: Teknik Öğretmen ve Bilgisayar Teknikeri Şahabettin Akca