PHP ile Dizin İşlemleri

Tenacius

Kıdemli Üye
23 Eki 2010
3,540
0
Wants to be anywhere
opendir() işlevi
Adında da anlaşılacağı gibi bu işlev kendine parametre olarak verilen dizini açmak için kullanılır. Bulunduğumuz dizindeki “resimler” alt dizinini açmak için
opendir(”./resimler”);
gibi bir ifade kullanırız.
readdir() işlevi
Bu işlev ise açık olan bir dizinde okuma yapmamıza olanak sağlar. Yine bulunduğumuz dizindeki “resimler” altdizinini okumak için
$dizi=opendir(“./resimler”);
readdir(“$dizin”);
gibi bir komut kullanırız. İsterseniz dizinler ile ilgili iki işlevi bir örnek ile açıklayalım. Bu işlevin çalışabilmesi için bulunduğumuz dizinin içinde bir “abc” dizini olmalı ve kullanıcı yetkileri 705 yada 755 şeklinde (yani herkese okuma yetkisi) olmalıdır.
<?
##################
# dizin.php #
##################

$i = 1;
$dizin_ac = opendir(“./abc”);
while ($dosya = readdir($dizin_ac))
{
echo “Bu abc dizinindeki $i. eleman : $dosya<br>”;
$i++
}

?>
Yukarıdaki PHP programı bulunduğumuz dizindeki “abc” dizinini açıp, içeriğini sıra ile ekrana basmaktadır.
ereg() ve eregi() işlevleri
ereg() ve eregi() işlevleri bir metin içerisinde verilen bir kelimeyi arar. eregi() işlevi ereg() işlevinden farklı olarak arama sırasında büyük-küçük harf ayrımı yapmaz.
Hazırladığınız bir web formunda kullanıcının doğru bir e-posta adresi girip girmediğini kontrol etmek için aşağıdaki gibi bir kod kullanabilirsiniz.
<?
################
# ereg.php #
################
if(ereg(“@”,$eposta) && ereg(“.”,$eposta))
{
echo “Kaydolduğunuz için teşekkürler!”;
}
else
{
echo “<font color="#f80000">Lütfen e-posta adresinizi doğru girin!</font>”;
require(“uye_kayit.html”);
}

?>
ereg_replace() ve eregi_replace işlevleri
Bu işlevler de belirtilen metin içinde istenilen bir kelimeyi bulup değiştirmek için kullanılır. Yine eregi_replace() işlevinin ereg_replace() işlevinden farkı büyük-küçük harf ayrımı yapmamasıdır.
<?
######################
# ereg_replace.php #
######################
ereg_replace(“[email protected]”, ”[email protected]”, $metin);
?>
Diyelim ki 10-15 sayfalık bir yazı yazdım ve bu yazı içerisinde e-posta adresimi sıkça kullandım. Yazımı yazdıktan bir süre sonra e-posta adresim değişti. İşte yukarıdaki kod ile önceden yazdığım yazı içerisindeki eski adresimi yenisi ile değiştirebilirim.
md5() işlevi
md5() şifreleme için kullanılan bir işlevdir. İşleve parametre olarak verilen metnin uzunluğu ne kadar olursa olsun işlev bu metni 32bit ile şifreler ve geri dönüşümü yoktur. Yani md5 ile şifrelenmiş bir metni tekrar eski haline getirmek olanaksızdır (en azından şimdilik ;)). Peki bu ne işimize yarayacak? Karşılaştırma yaparken, mesela md5 ile şifrelenip veritabanına kaydedilmiş bir şifreyi kontrol etmek için, kullanıcıdan gelen şifreyi de md5 ile şifreleyip karşılaştırma yapmanız yeterli olacaktır. Md5 hakkında daha ayrıntılı bilgi için internette herhangi bir arama motorundan “RFC1321” aratmanız yeterli olacaktır.
unlink() işlevi
Bu işlev kendisine parametre olarak girilen dosyayı silmek için kullanılır. Kullanımı unlink(“dosya_adı”) şeklindedir.
mkdir() ve rmdir() işlevleri
Bu iki işlev de dizin oluşturma ve silme için kullanılır. mkdir() kendisine parametre olarak verilen bir dizini oluşturur ve rmdir() ise kendisine parametre olarak verilen dizini siler.
Tabii buraya kadar anlattığım dizin ve dosya işlemlerini gerçekleştirebilmeniz için o dosya ve dizin üzerinde kullanım hakkına sahip olmanız gerekmektedir. Aksi taktirde dosyaya ulaşımda sorun olduğuna dair bir hata mesajı ile karşılaşırsınız. İnternet'teki bir sunucudan istekte bulunan bir kullanıcı sunucu sistem tarafında “diğer” kullanıcı grubuna dahil edilir. Dosya erişim yetkileri bu özellik göz önünde bulundurularak ayarlanmalıdır.​
 

Virtual Root

Kıdemli Üye
8 Haz 2008
3,488
5
Buyrun Düzgün Hali

opendir() işlevi
Adında da anlaşılacağı gibi bu işlev kendine parametre olarak verilen dizini açmak için kullanılır. Bulunduğumuz dizindeki “resimler” alt dizinini açmak için

opendir(”./resimler”);

gibi bir ifade kullanırız.
readdir() işlevi
Bu işlev ise açık olan bir dizinde okuma yapmamıza olanak sağlar. Yine bulunduğumuz dizindeki “resimler” altdizinini okumak için

$dizi=opendir(“./resimler”);
readdir(“$dizin”);

gibi bir komut kullanırız. İsterseniz dizinler ile ilgili iki işlevi bir örnek ile açıklayalım. Bu işlevin çalışabilmesi için bulunduğumuz dizinin içinde bir “abc” dizini olmalı ve kullanıcı yetkileri 705 yada 755 şeklinde (yani herkese okuma yetkisi) olmalıdır.

<?
##################
# dizin.php #
##################

$i = 1;
$dizin_ac = opendir(“./abc”);
while ($dosya = readdir($dizin_ac))
{
echo “Bu abc dizinindeki $i. eleman : $dosya<br>”;
$i++
}

?>

Yukarıdaki PHP programı bulunduğumuz dizindeki “abc” dizinini açıp, içeriğini sıra ile ekrana basmaktadır.
ereg() ve eregi() işlevleri
ereg() ve eregi() işlevleri bir metin içerisinde verilen bir kelimeyi arar. eregi() işlevi ereg() işlevinden farklı olarak arama sırasında büyük-küçük harf ayrımı yapmaz.
Hazırladığınız bir web formunda kullanıcının doğru bir e-posta adresi girip girmediğini kontrol etmek için aşağıdaki gibi bir kod kullanabilirsiniz.

<?
################
# ereg.php #
################
if(ereg(“@”,$eposta) && ereg(“.”,$eposta))
{
echo “Kaydolduğunuz için teşekkürler!”;
}
else
{
echo “<font color="#f80000">Lütfen e-posta adresinizi doğru girin!</font>”;
require(“uye_kayit.html”);
}

?>

ereg_replace() ve eregi_replace işlevleri
Bu işlevler de belirtilen metin içinde istenilen bir kelimeyi bulup değiştirmek için kullanılır. Yine eregi_replace() işlevinin ereg_replace() işlevinden farkı büyük-küçük harf ayrımı yapmamasıdır.

<?
######################
# ereg_replace.php #
######################
ereg_replace(“[email protected]”, ”[email protected]”, $metin);
?>

Diyelim ki 10-15 sayfalık bir yazı yazdım ve bu yazı içerisinde e-posta adresimi sıkça kullandım. Yazımı yazdıktan bir süre sonra e-posta adresim değişti. İşte yukarıdaki kod ile önceden yazdığım yazı içerisindeki eski adresimi yenisi ile değiştirebilirim.
md5() işlevi
md5() şifreleme için kullanılan bir işlevdir. İşleve parametre olarak verilen metnin uzunluğu ne kadar olursa olsun işlev bu metni 32bit ile şifreler ve geri dönüşümü yoktur. Yani md5 ile şifrelenmiş bir metni tekrar eski haline getirmek olanaksızdır (en azından şimdilik ;)). Peki bu ne işimize yarayacak? Karşılaştırma yaparken, mesela md5 ile şifrelenip veritabanına kaydedilmiş bir şifreyi kontrol etmek için, kullanıcıdan gelen şifreyi de md5 ile şifreleyip karşılaştırma yapmanız yeterli olacaktır. Md5 hakkında daha ayrıntılı bilgi için internette herhangi bir arama motorundan “RFC1321” aratmanız yeterli olacaktır.
unlink() işlevi
Bu işlev kendisine parametre olarak girilen dosyayı silmek için kullanılır. Kullanımı unlink(“dosya_adı”) şeklindedir.
mkdir() ve rmdir() işlevleri
Bu iki işlev de dizin oluşturma ve silme için kullanılır. mkdir() kendisine parametre olarak verilen bir dizini oluşturur ve rmdir() ise kendisine parametre olarak verilen dizini siler.
Tabii buraya kadar anlattığım dizin ve dosya işlemlerini gerçekleştirebilmeniz için o dosya ve dizin üzerinde kullanım hakkına sahip olmanız gerekmektedir. Aksi taktirde dosyaya ulaşımda sorun olduğuna dair bir hata mesajı ile karşılaşırsınız. İnternet'teki bir sunucudan istekte bulunan bir kullanıcı sunucu sistem tarafında “diğer” kullanıcı grubuna dahil edilir. Dosya erişim yetkileri bu özellik göz önünde bulundurularak ayarlanmalıdır.


 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.