PHP Dosya Adını Değiştirme Ve Taşıma rename() Fonksiyonu

Php ile bir dosyanın adını değiştirmek için rename() fonksiyonunu kullanmamız gerekmektedir. Bu fonksiyon ile sadece dosya ismini değiştirmekle kalmaz dosyayı taşılabilirizde. Şimdi fonksiyonumuza detaylı bakalım :

Bir dosya veya dizinin eski adını kullanıcı tarafından belirtilen yeni bir adla değiştirmeye çalışır ve gerekirse dizinler arasında Taşıma yapabilir. Eğer, parametreler aynı dizini gösteriyor ise dosya adı değiştirilir, Farklı dizinleri gösteriyorsa taşıma işlemi gerçekleşir.

Kullanıcı tarafından belirtilen yeni ad zaten varsa, rename() fonksiyonu bu adın üzerine yazar. Dosyanın eski adı ve kullanıcı tarafından belirtilen yeni ad, rename() fonksiyonuna parametre olarak gönderilir ve başarı durumunda TRUE ve hata durumunda FALSE döndürür.

rename(old, new, context)

<?php
rename("one.txt","two.txt");
?>

Yukardaki kod ile dosya aynı dizinde sadece adı değişmektedir.

rename("test.txt", "ornek/deneme.txt");

Yukardaki kod çalıştırdığınızda test.txt dosyası ornek dizini altına deneme.txt olarak taşınır. Hata vermemesi için ornek dizini önceden olması gerekmektedir.

Read More

PHP ile Dosyaları açmak ve kapatmak fopen() – fclose()

Php fonksiyonlarından fopen() ve fclose() fonksiyonlarından bahsedeceğiz bu yazımızda. Php ile dosya açıp kapamaya yarayan bu fonksiyonlarımız ile ister sunucumuzdan ister urlden dosya açabiliriz. Dosya işlemlerini kullanarak, dosyaya veri yazmak ve dosyada veri okumak için dosyanın uygun kip ile birlikte açılmış olması gerekir. fopen() fonksiyonu bir dosya veya URL açar. Fonksiyon başarısız olursa, FALSE ve hata durumunda bir hata döndürür. Hata çıkışını gizlemek için fonksiyonun adının önüne “@” ekleyin.

fopen(filename, mode, include_path, context)

filename: Gereklidir. Açılacak dosyayı veya URL’yi belirtir.

mode: Erişim türünü belirten zorunlu bir parametredir.

Aşağıdaki olası KİP değerlere sahip olabilir:

“r”: Salt okunur anlamına gelir. Dosyanın başında başlar. Dosya yoksa FALSE değerini döndürür.

“r +”: Okuma / Yazmayı temsil eder. Dosyanın başından başlar. Dosya yoksa FALSE

“w”: Yalnızca Yazmayı temsil eder. Dosyanın içeriğini açar ve temizler veya yoksa yeni bir dosya oluşturur.

“w +”: Okuma / Yazmayı temsil eder. Dosyanın içeriğini açar ve temizler veya yoksa yeni bir dosya oluşturur.

“a”: Yalnızca Yazma’yı temsil eder. Açılır ve dosyanın sonuna yazar veya yoksa yeni bir dosya oluşturur.

“a +”: Okuma / Yazmayı temsil eder. Dosyanın sonuna yazarak dosyanın içeriğini korur.

“x”: Yalnızca Yazma’yı temsil eder. Yeni bir dosya oluşturur ve dosya zaten varsa FALSE ve bir hata döndürür.

“x +”: Okuma / Yazma’yı temsil eder.Yeni bir dosya oluşturur ve zaten varsa FALSE ve hata verir.

include_path: (php.ini) Dosyasında, dosyayı aramak istiyorsanız 1 olarak ayarlanmış isteğe bağlı bir parametredir.

context : İsteğe bağlı. Dosya tanıtıcısının bağlamını belirtir. Bağlam, bir akışın davranışını değiştirebilen bir seçenekler kümesidir.

<?php
$file = fopen( "test.txt", "r" );
?>

Özellik olarak nitelendirdiğimiz 2. parametre dosyanın okuma biçimidir.

r -> sadece okumak için w -> sadece yazmak için a -> dosya üzerine eklemek için

fopen() uzak dosyaları belirtebilir. PHP sizin için otomatik olarak bir HTTP / FTP bağlantısı açar ve dosya tanıtıcısını döndürür.

$dosya = fopen("http://www.google.com","r");

fclose()

Dosyaları kapatma PHP’deki fclose() fonksiyonu, açık dosya işaretçisi ile gösterilen bir dosyayı kapatmak için kullanılan dahili bir fonksiyondur. fclose() fonksiyonu başarı durumunda

<?php
$dt = fopen('dosya.txt', 'r');
fclose($dt);
?>

Read More

PHP explode() ile metinleri bölme parçalama

Bu yazımızda sizlerle explode() fonksiyonu ile php de biz metni nasıl parçalara ayıracağımıza bakacağız.

Explode() fonksiyonu metin ifadelerinde bir ayraç ile parçalamak için kullanılır. Bu fonksiyon, string ifade içinde belirlenen ayraç bulunduğu müddetçe metni parçalar ve bir dizi olarak geri döndürür. Konuya daha detaylı bakmak için örnek üzerinden ilerliyelim.

explode( ayraç,string,limit)
Ayraç : Gereklidir. Ayırıcı olarak stringi nereden böleceğini belirtir.
String : Gereklidir. Bölünecek, alt dizinlerine ayrılacak metin.
Limit : İsteğe bağlıdır. dizideki eleman sayısıdır.

Limit pozitifse dizi en çok belirtilen Limit sayıda eleman içerir ve metnin kalanı son elemana yerleştirilir.
Limit negatifse, son limit eleman hariç tüm elemanlar döndürülür.
Limit sıfırsa, Dizi bir eleman gösterir.

Dönen Değerler :
Ayraç boş (“”) bir dizge ise explode() fonksiyonu FALSE döndürür. Eğer ayraç stringi, metin içinde bulunmayan bir karakter içeriyorsa ve negatif bir limit belirtilmişse boş bir dizi döner. Diğer limit değerleri için metin içeren bir dizi döner.

<?php

$metin = "Güncel Teknoloji ve Programlama Platformu.";

$dizi = explode (" ",$metin);

echo '<pre>';

print_r ($dizi);

echo '</pre>';

?>
Array
(
    [0] => Güncel
    [1] => Teknoloji
    [2] => ve
    [3] => Programlama
    [4] => Platformu.    
)

Yukarda da görüldüğü gibi bölme işleminden sonra diziye değerler atanmıştır. Bu aşamadan sonra istediğimiz yerde istediğimiz dizi elemanını çağırarak yazdırabiliriz.

<?php

echo $dizi[3]; // Ekranda Programlama yazacaktır.

?>

Read More

ASP İLE PHP ARASINDAKİ FARKLAR

ASP ile PHP farklarına bu yazımızda birlikte inceleyelim.

Asp.NET hızlı web sitesi geliştirilmesinin gerekli olduğu, kullanıcı sayısının çok fazla olmadığı projelerde rahatlıkla (hazır kontroller ile birlikte) kullanılabilir. Böylece kısa zamanda birçok işe yarayan web siteleri yapılabilir. Bugün e-ticaret, Cms (Content Management Sistem) ve blog sistemlerde bile kullanılmaktadır. Çok daha büyük projeler için geliştirilen Asp.NET MVC teknolojisi (MVC=Model View Controller, bir design pattern’dir ve Asp.NET için de adapte edilmiştir) kullanılmaktadır.

PHP, bugün birçok blog ve Cms (Content Management Sistem, Örnek Joomla) sistemlerinde kullanılmaktadır. Küçük ya da büyük ölçekli tüm projelerde rahatlıkla kullanımaktadır. Ancak HTML kodları arasına yazım çok büyük projelerde yönetilebilirliği azalttığından ve birden fazla programcının çalışması gereken projelerde farklı teknolojilere başvurulabilmektedir (PHP MVC).

Asp.NET geliştirme ortamı için şu an herhangi bir ücret gerekmemektedir. Visual Studio 2013 Community, Visual Studio 2015 Community versiyonları ücretsizdir. Bunlarla rahatlıkla geliştirme yapılabilir. Ayrıca Asp.NET ile tam uyumlu çalışan veritabanı sunucusu olan Microsoft SQL Server Express versiyonu da ücretsiz olarak kullanılabilir. Ancak çok büyük projeler için tercih edilen Microsoft SQL Server’in ücretli versiyonlarının lisans ücretleri oldukça yüksektir (Microsoft SQL Server Standart, Enterprise gibi).

PHP; open source (açık kaynak kod) bir dildir. PHP ile ilgili birçok şeye ücretsiz ulaşabilirsiniz. Geliştirme ortamı olarak birçok text editör (Notepad++ gibi) ücretsiz olarak kullanılabilir. Ancak büyük projeler için tercih edilen Adobe Dreamveawer gibi programlar ücrete tabidir. Tam uyumlu veritabanı sistemi olan MySQL tamamen ücretsizdir. Ancak çok büyük projeler için kullanılan Oracle gibi ileri düzey veritabanı sistemleri ücretlidir.

Çalışma süreleri farkları

Her ikisi de sunucu tarafında çalıştığından, browser tabanlı dillere göre (Html, css, javascript gibi) çok yavaşlar. Ancak birçok karşılaştırma testlerinde Asp.NET’in çalışma hızının PHP’den daha az olduğu görülmekte . Bunda Asp.NET kodlarının ilk çalışmada derlenmesi ve sonra tekrar tekrar kullanılması mantığı etkili bir faktör. Nitekim PHP de her kullanımda sunucu tarafında derlenir ve çalıştırılır. Oysaki Asp.NET’de bir sefer derlenen kodlar artık her sefer için kullanıma hazırdır. Bunlara rağmen büyük çaplı projelerde kullanılan Asp.NET hazır kontrolleri performans açısından kayıplara neden olabilmekte. Ayrıca Viewstate (asp.net’te kullanılan kontrollerin bilgilerinin tutulduğu, html kodlarına adapte olmuş şifreli kodlar) kullanımı da (projenin boyutu arttıkça) performans kayıplarına neden olabilmektedir. PHP’de ise bir kararlılık söz konusu. Usta ve deneyimli eller ile yazılmış PHP kodları büyük projelerde bile performansa büyük ölçekli olumsuz etkisi bulunmamakta.

Yazım farklılıkları

Asp.NET Web Forms projeleri geliştirilirken 2 bölüm yer almakta. HTML, css, javascript gibi tarayıcı taraflı kodlarımızın bulunduğu ve ziyaretçilerin gördüğü kodların bulunduğu Web sayfası bölümü ve C# gibi kodlarımızın kullandığı, her asp.net sayfası için var olan kod bölümü yer almaktadır. Web sayfası bölümüne yerleştirdiğiniz her bir kontrolün ismi ile kod bölümünden bu kontrole erişebilirsiniz. Böylece 2 ayrı sayfa ile çalışarak kod kalabalığından bir nebze kurtulmuş olursunuz. Ayrıca bu kontrollerin olaylarına(events) Properties(özellikler) penceresinden erişip hızlıca kod tarafında olaylar yazabilirsiniz. PHP tarafında ise bu işlerin tamamı HTML kodları arasında yazılır. <?php ve ?> tag’leri (etiketleri) PHP için yeterlidir ve bir HTML kodlarının herhangi bir yerinde yazmak yeterlidir.

Uyumluluk ve üzerinde çalışma ortamları farkları

Son gelişmelerle birlikte her ikisi de hem Windows ortamlarda hem de Linux ortamlarda çalışmaktadır. Veritabanı sistemleri olarak her ikisi de Mssql, Mysql, Oracle gibi veritabanı sistemleri ile çalışmaktadır.

Geliştirildikleri ortam farkları

Geliştirme ortamının (Visual Studio) sağladığı birçok kolaylık ile projenizi daha az sorunlu ve zahmetsiz geliştirebilirsiniz. Visual Studio’nun sağladığı birçok kolaylık ile kod yazarken bile birşeyler öğrenebilir ve hızlıca projenizi kodlayabilirsiniz. Kısayolların kullanımı ile projenizi daha okunaklı yapabilir, kod renklendirmeleri ile daha anlaşılır kodlar yazabilirsiniz. Visual studio’da bulunan extensions aracı ile projenize birçok ücretsiz paket ekleyip rahatlıkla kullanabilirsiniz. Ayrıca birçok geliştiricinin ortak çalışmasını destekleyen Team Foundation ile projeler geliştirebilirsiniz.

PHP’de ücretli bir editör kullanıyorsanız (Dreamveawer gibi) işler çok daha kolaylaşmaktadır. Kod renklendirmeleri(ücretsiz editörlerin çoğu da desteklemektedir), kod tahmini (kodun bir bölümünü yazarken kod seçeneklerini getirme) gibi seçenekler ile programcıya yardım eden özellikler PHP tarafında da vardır. Bu sayede bilmediğiniz kodları bile öğrenebilirsiniz.

Read More