Aramayan Bulamaz
×
PHP arama sorgusuna ait içerikleri görüntülemektesiniz.
Linux\'ta PHP Localhost Dizinini Değiştirmek

Linux'ta localhost klasör değişikliği yapmak için çok fazla bir işleme gerek yoktur. Linux komut satırında php --help yazdığımızda bu komutla ilgili kullanılabilecek parametreler listeleniyor. Biz burada -S ve -t parametrelerini kullanacağız. php -S localhost:81 -S parametresi ile çalıştırmak istediğimiz adres ve port numarasını belirtiyoruz. burada http://localhost:81 adresi üzerinden işlem yapacağımızı belirtmiş olduk. Fakat bu şekilde sayfayı açtığımızda Not Found uyarısıyla karşılaşırız çünkü neredeki dosyaları göstereceğini belirtmedik.
php -S localhost:81 -t /media/flashdisk/site/ Burada da http://localhost:81 adresine bir istek gelince /media/flashdisk/site/ dizinine ait içeriği göstermesi şeklinde belirtmiş olduk. Komutumuzu php -S localhost:80 olarak belirtirsek eğer 80 numaralı portun kullanıldığına dair bir uyarı alabiliriz. İllaki 80 numaralı portu kullanmak istiyorsanız eğer apache servislerini kapatarak çalışmanızı yapabilirsiniz. service apache2 stop php -S localhost:80 -t /media/flashdisk/site/

PHP Çoklu Resim Upload ve Boyutlandırma

Merhaba, önceki konumda resim upload ve boyutlandırma classını anlatmıştım. Bu konuda aynı classı kullanarak birden fazla resmi nasıl upload edeceğimizi anlatacağım.

İlk önce boş bir html açalım ve içine şunları yazalım:

<form action="upload.php"> <input type="file" name="resim[]" multiple> <input type="submit" value="Yükle"> </form> Inputun name kısmında [] böyle bir ifade kullandık, bu resim nameinin array tipli olacağını gösterir. Yani bu değer upload.php dosyasına içinde birden fazla veri bulunan bir dizi değişkeni olarak gönderilecek.
upload.php dosyasına da içine de şunları yazalım: include 'resim.class.php'; $upload = new ResimIslem(); foreach($_FILES["resim"]["name"] as $n => $name) { if(!empty($name)) { echo $upload->resim_upload($_FILES["resim"]["name"][$n],$_FILES["resim"]["tmp_name"][$n],$_FILES["resim"]["error"][$n],'resim-dizini','dosya ismi - '.$n,1920,1200)."
"; } }

resim.class.php bizim ResimIslem sınıfının bulunduğu dosya. Html formdan resim[] nameinin değeri array tipli geldiği için foreach ile bunu döngüye alıp dizinin indis numarasını $n değişkenine, gelen dosya ismini de $name değişkenine atadık. Döngü içinde dosya adını kontrol ettirdik, dosya ismi boş değilse resim_upload() fonksiyonunu çağırdık ve upload işlemi gelen her dosya için döngü boyunca tek tek yapıldı.

$_FILES["resim"]["name"][$n] şeklinde kullanmamızın sebebi de $n ilk sıfırdan başıyor ve döngü boyunca her defasında 1 artıyor. $_FILES["resim"]["name"][0] gelen ilk dosyanın bilgisini $_FILES["resim"]["name"][1] ikinci dosyanın bilgisini $_FILES["resim"]["name"][3] üçündü dosyanın bilgisini verecek şekilde devam ediyor. Döngü kullanmamızın sebebi bu sayıyı döngü boyunca artırıp çoklu upload işlemini sağlamak.

PHP Resim Upload ve Boyutlandırma Sınıfı

Merhabalar, sizlere hazırlamış olduğum resim boyutlandırma ve upload classını göstereceğim. Daha önceki konumda nesne tabanlı programlamadan bahsetmiştim. Şimdiki anlatacağım konu ise nesne tabanlı olarak resim boyutlandırma ve upload üzerine bir classdır
Fazla uzatmadan classı anlatmaya başlayım :)

<?php class ResimIslem{ public function watermark($filigran, $source_file_path, $output_file_path ) { list( $source_width, $source_height, $source_type ) = getimagesize( $source_file_path ); if ( $source_type === NULL ) { return false; } switch ( $source_type ) { case IMAGETYPE_GIF: $source_gd_image = imagecreatefromgif( $source_file_path ); break; case IMAGETYPE_JPEG: $source_gd_image = imagecreatefromjpeg( $source_file_path ); break; case IMAGETYPE_PNG: $source_gd_image = imagecreatefrompng( $source_file_path ); break; default: return false; } $overlay_gd_image = imagecreatefrompng($filigran); $overlay_width = imagesx( $overlay_gd_image ); $overlay_height = imagesy( $overlay_gd_image ); imagecopymerge( $source_gd_image, $overlay_gd_image, $source_width - $overlay_width, $source_height - $overlay_height, 0, 0, $overlay_width, $overlay_height, 60 ); imagejpeg( $source_gd_image, $output_file_path, 100 ); imagedestroy( $source_gd_image ); imagedestroy( $overlay_gd_image ); } public function resim_boyutlandir($resim,$k_resim,$max_en=1920,$max_boy=1200){ // içeriği başlat.. $resimdosyasi= pathinfo($resim); $uzanti=$resimdosyasi["extension"]; ob_star

Linux Komut Satırı - Genel Linux Komutları

Günümüzde Linux işletim sistemleri son kullanıcıyı düşünerek güzel bir arayüzle geliyorlar fakat yapabileceğimiz işlemlerin çok büyük bir çoğunluğu yine de komut satırında. Bilgisayar kullanıcılarının çoğunun Linux'tan uzak durmasının sebebi aslında bu komut satırı ancak şu anda herşey görsel bir arayüzden halledilebilmekte ama yine de komut satırının hükümdarlığı önplanda.

Komut satırından en basit sistem ayarından, en karmaşık ağ ayarlarına kadar her şeye ulaşılabilir ve ayarlanabilir.

dmesg komutu sistem açılışında gösterilen mesajları tekrar görmemizi sağlar, tanınmayan bir donanım vs varsa eğer burada gösterilir. Daha sonra cihazlarınızı bilgisayarınıza bağlandıkları arayüze göre lspci ve lsusb gibi komutlarla ayrıntılı bir şekilde inceleyebilirsiniz.

Linux her yapılan eyleme bir işlem gözüyle bakar. top komutu ile sistem kaynaklarını görüntüleyebilir, sistem kaynaklarını en çok harcayanı belirleyebiliriz. Ayrıca ps komutu ile işlemler hakkında daha detaylı bilgiye sahip olabiliriz.

Linuxta güvenlik sebebiyle dosya izinleri, kullanıcları ve grupları vardır. chmod ve chown komutları ile dosyaların kullanıcı ve izin ayarlarını ayarlayabiliriz.
chmod +x dosyanın çalıştırılabilir olmasını sağlar
chmod 777 dosyaya tüm hakları tanır.

chmod 777 dosyaismi

chown ile dosyanın kullanıcı ve grubunu değiştirebiliriz.
chown niyazi dosyaismi

man komutu Linux'a yeni başlayanlar için en yararlı komut. man komutu ile başka bir komut hakkında bilgi sahibi olabiliriz.
man cat

cat isimli komutun görevinin ne olduğunu anlatan bir çıktı verir bize.

cat komutu ile bir metin belgesi içerisinde bulunan bilgileri okuyabiliriz.

PHP Data Object - PDO

PHP de veri tabanına bağlanma ve sorgu çalıştırmayı anlatmıştım.
Klasik veri tabanı bağlantısı mysql_connect() komutu ile yapılıyor, sorgu çalıştırma mysql_query() ile yapılıyor fakat pdo yapısı biraz farklı. PDO php 5.2 den sonra gelen bir veri tabanı sorgu sınıfı, yani nesne tabanlı bir yapı.
En güzel özelliği çoklu veri tabanı desteği olması. Oracle, SQL Server, MySQL gibi farklı veritabanlarına bağlanabilme özelliği sunuyor. Ayrıca kendi içerisinde sql injection koruması olan bir sınıftır.

$db = new PDO('mysql:host=localhost;dbname=veritabanı adı', 'kullanıcı adı', 'sifre'); PDO sınıfını db değişkenine bağlı olarak oluşturduk, sorgularımızı bu sınıfa bağlı methodlar ile yapacağız.

query() methodu genel olarak tüm sorgularda kullanılır.
exec() methodu bilgi girişi, güncelleme, silme gibi veri tabanına değer göndermede kullanılır.
prepare() methodu query() methodundaki gibi tüm sorguları çalıştırmada kullanılır fakat buna ek olarak bir de execute() methodu kullanılır, prepare ile yapılan sorgunun uygulanması için.
fetch() methodu; tek bir sonuç getirmek için kullanılır, query ile çalıştırılmışsa sorgu query den sonra, prepare ile çalıştırılmışsa sorgu execute methodundan sonra kullanılır.

Veritabanından dataların sayılarını getirmek istediğimizde fetch(PDO::FETCH_NUM) kullanılır.

Örnek olarak bir sorgu çalıştırayım, sorguyu query ile yapacağım. $sorgu = $db->query('select * from blog where id=1')->fetch(); Veritabanından id değeri 1 olan konuyu getiren sorguyu yazdık. Bu şekilde de yapabilirdik $sorgu = $db->query('select * from blog where id=1'); $sorgu->fetch(); İkisi de aynı işlemi yapıyor. echo $sorgu['blog_baslik'];
İ