PHP mb_convert_case() Fonksiyonu

Genelde latin karakterleri büyük küçük yaparken sorunlar yaşıyoruz.
Yaşamamak için aslında php’de Multibyte fonksiyonlarını kullanmak gerekiyor.
Bu yüzden alternatif olarak mb_convert_case fonksiyonu kullanılabilir.

Fonksiyon 3 parametre alıyor.
Bunlar sırasıyla String > Mod > Karakter Seti

3 farklı mod var. Bunlar;

  • MB_CASE_UPPER = Tüm ifadeyi büyütür.
  • MB_CASE_LOWER = Tüm ifadeyi küçültür.
  • MB_CASE_TITLE = İfadede her kelimenin baş harfini büyütür.

Örnek kullanımları ise şöyle;

$string = "şeker şey seni gidi";
echo mb_convert_case($string, MB_CASE_UPPER, 'UTF-8'); // büyük yazar
echo "<hr>";
echo mb_convert_case($string, MB_CASE_TITLE , 'UTF-8'); // kelimenin baş harflerini büyük yazar..

Kaynak: http://php.net/manual/en/function.mb-convert-case.php

PHP ile Excel Dosyası Oluşturmak

Bunun için yazılmış bir çok sınıf bulunmakta, ancak sanırım en basiti şu abimizin yaptığı ????
https://github.com/oliverschwarz/php-excel

Kullanımına örnek verecek olursak.

<?php

// sınıf dosyası
require 'excel_xml.class.php';

$data = array(
    1 => array(
        'ad', 'soyad', 'yas'
    ),
    array(
        'Tayfun', 'Erbilen', 21
    ),
    array(
        'Murat', 'Miregil', 21
    )
);

$xls = new Excel_XML('UTF-8', false, 'My Test Sheet');
$xls->addArray($data);
$xls->generateXML('xls-dosyasi-adi');

?>

İşte bu kadar basit ???? Daha önce hiç yapmamış ama şimdi lazım olmuş olanlar için çok kullanışlı basit bir örnektir.
Kolay gelsin.

Php Array içinde Değer Değiştirme

Örneğin 2,22,222,2222 şeklinde bir string ifadeniz var. Ve siz 22 değerini 44 yapmak istiyorsunuz. Bunu nasıl yapacaksınız? Bu bir string unutmayın. Eğer düşünceniz şu ise;

$string = '2,22,222,2222';
echo str_replace('22', '44', $string);

Sizi tebrik ederim yanlış cevap. Gelelim doğrusuna, çok fazla istisnai durum olacağından bana kalırsa en mantıklısı dizi haline çevirip dizi elemanını replace etme olacaktır. Örneğin;

$string = '2,22,222,2222';
$string = explode(',', $string);
echo implode(',', array_replace($string, array_fill_keys(
    array_keys($string, 22),
    44
)));

Nerede lazım olacak ki demeyin, bana oldu ki paylaşıyorum ????

Bir tane daha alternatif olabilir;

$string = explode(',', '2,22,222,2222');
$replaced = array_search('22', $string);
$string[$replaced] = 44;

PHP Tarih Sorunu

Bazen bir içerik eklediğinizde bugün eklediğiniz içerik dünü gösteriyor ya da yarını gösteriyor olabilir. Ön tanımlı zaman diliminden kaynaklı bir problemdir. Öncelikle mevcut zaman dilimini öğrenmek için date_default_timezone_get() fonksiyonunu kullanacağız.

echo date_default_timezone_get();

Şimdi biz Europe/Istanbul kullanacağız. Eğer dönen sonuç böyle değil ise kendimiz ayarlayalım. Bunuda date_default_timezone_set() fonksiyonu ile yapıyoruz.

date_default_timezone_set('Europe/Istanbul');

Evet, artık böyle bir sorun yaşamayacaksınız ???? Kolay gelsin.

PHP ile Gmail RSS Servisinden Okunmamış Postaları Çekmek

Gmail hesabınızda oluşturduğunuz label’lara ait ya da gelen, spam gibi kısımlara ait okunmamış mesajlarınızı kendi siteniz üzerinden görmek isterseniz gmail’in rss servisini kullanabilirsiniz.

Örneğin okunmamış mesajlar için;
https://mail.google.com/mail/feed/atom/

ya da spam mesajlar için;
https://mail.google.com/mail/feed/atom/spam

ya da kendi oluşturduğunuz “işler” adında bir labeliniz için;
https://mail.google.com/mail/feed/atom/işler

Bu adreslere girdiğinizde eğer şuan bir gmail hesabınızda oturum açtıysanız onunla ilgili detayları göreceksiniz. Ancak PHP‘de cURL kullanarak herhangi bir başka hesapta anlık oturum açıp postalarımızı görebiliriz. Bunun için öncelikle bize bir cURL fonksiyonu gerekecek. Daha önce cURL hakkında bilgisi olmayanlar şuradan curl derslerime bir gözatabilir.

Şimdi gelelim bize lazım olan cURL fonksiyonuna. Ben sizler için bir tane hazırladım ve 3 parametre alıyor. Bunlar gmail kullanıcı adı, şifresi ve varsa label adı.

function gmailFeed($username, $password, $label = ''){
    $url = "https://mail.google.com/mail/feed/atom/" . $label; 
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($curl, CURLOPT_USERPWD, $username . ":" . $password);
    curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
    curl_setopt($curl, CURLOPT_ENCODING, "");
    $data = curl_exec($curl);
    curl_close($curl);
    return $data;
}

Kullanımına gelecek olursak;

<?php

require 'gmail.function.php'; // fonksiyon dosyamız

// kullanıcı adı ve şifre tanımı
$gmail_username = '[email protected]';
$gmail_password = 'xxxx';

// gelen kutusu okunmamış postaları çekelim
$feeds = gmailFeed($gmail_username, $gmail_password);
$feeds = new SimpleXMLElement($feeds);
print_r($feeds);

// spam kutusu okunmamış postaları çekelim
$feeds = gmailFeed($gmail_username, $gmail_password, 'spam');
$feeds = new SimpleXMLElement($feeds);
print_r($feeds);

// örnek olarak oluşturduğumuz bir x labeline ait okunmamış mesajları çekelim
$feeds = gmailFeed($gmail_username, $gmail_password, 'x');
$feeds = new SimpleXMLElement($feeds);
print_r($feeds);

?>

Örnek yazdırma işlemi;

<ul>
   <?php foreach ( $feeds->entry as $feed ): ?>
      <li>
         <strong>title; ?></strong><br />
         <?php echo $feed->author->name; ?> (<?php echo $feed->author->email;?>)<br />
         <span style="color: #777">
            <?php echo $feed->summary; ?>..
         </span>
      </li>
   <?php endforeach; ?>
</ul>

İşte hepsi bu kadar ????

strtolower() ile Türkçe Karakterlerin Küçültülmesi (Php)

Bildiğiniz gibi strtolower() fonksiyonu ile türkçe (latin karakterleri) düzgün şekilde küçültemiyoruz. Aslında bu sadece küçültme işlemi için geçerli değil, latin karakterlerde her zaman bir sorun yaşıyoruz. Büyültmede, kesmede vs. Bu yüzden php bize karakter seti tanımlayabileceğimiz mb_ li fonksiyonları türetmiştir. Hemen bir örnekle açıklayalım;

$harf = 'İ';

echo strtolower($harf); // Çıktı: Ä°

echo mb_strtolower($harf, 'utf8'); // Çıktı: i

kolay gelsin ????

Dizi Değerlerini Get Parametresine Dönüştürme (Php)

Normal şartlarda hiç işime yaramadı ama yaradığı yerler vardır illaha ki ???? Bilmeyenler için paylaşıyorum.
Elinizdeki mevcut dizinin anahtar ve değerlerini baz alarak size bir get parametre çıktısı döndürür. İşinizi kolaylaştırır.

Bu fonksiyonun adı http_build_query() dir.

Hemen bir örnekle şenlendirelim;

$array = array(
    'ad' => 'tayfun',
    'soyad' => 'erbilen',
    'dtarih' => 1993
);

$get = http_build_query($array);
echo $get; // Çıktı: ad=tayfun&soyad=erbilen&dtarih=1993

bazen query’deki & işaretinin & şeklinde olmasını isteyebiliyoruz. Bunun için fonksiyonu şöyle değiştirmek yeterli;

http_build_query($array, '', '&');

bkz: http://us3.php.net/manual/en/function.http-build-query.php

Gereksiz Boşlukları Silme Fonksiyonu (PHP)

String değerlerin başında, sonunda ve ortalarında bulunan birden fazla boşluğu tek boşluğa indirgemek isterseniz bu fonksiyonu kullanabilirsiniz. Kısaca tüm gereksiz boşlukları siler.

<?php

function replaceSpace($string)
{
	$string = preg_replace("/\s+/", " ", $string);
	$string = trim($string);
	return $string;
}

$string = '     test             et             ';
print replaceSpace($string);

?>