PHP ile css dosyalarının daha hızlı yüklenmesi

CSS, php Yorum Yok »

Web sitenizde birden fazla css dosyası kullanıyorsanız sayfanızın yüklenmesi uzun sürebilir. Aşağıdaki php örneğini kullanarak css dosyalarınızı sıkıştırıp tek bir dosyada birleştirebilirsiniz. Hem tek dosya olması hem de gereksiz boşlukların ve yorumların temizlenmesi css dosyalarınızın daha çabuk yüklenmesini sağlayacaktır.

<?php
header('Content-type: text/css');
ob_start("compress");
function compress($buffer) 
{
	/* yorumlar temizleniyor */
	$buffer = preg_replace('!/\*[^*]*\*+([^/][^*]*\*+)*/!', '', $buffer);
 
	/* tablar, boşluklar, satırlar temizleniyor */
	$buffer = str_replace(array("\r\n", "\r", "\n", "\t", '  ', '    ', '    '), '', $buffer);
	return $buffer;
}
 
/* css dosyalarınız */
include('stylesheet.css');
include('typography.css');
include('grid.css');
include('print.css');
include('ozel.css');
 
ob_end_flush();
?>

Sitenizin header bölümünde css dosyalarınız yerine oluşturduğunuz bu php dosyasından istekte bulunanız yeterli.

Metin içerisinde kelime vurgulama/renklendirme

php Yorum Yok »

Arama sonuçlarında aranan kelimeleri renklendirerek veya farklı bir biçimde göstererek vurgulamak isterseniz aşağıdaki fonksiyonu kullanabilirsiniz. Fonksiyon metin içerisindeki kelimeleri regular expression ile bulup değiştiriyor.

<?php
 
function vurgula($metin, $kelimeler)
{
    if (!is_array ($kelimeler) || empty ($kelimeler) || !is_string ($metin))
    {
        return false;
    }
 
    $kelimeler = implode ('|', $kelimeler);
    return preg_replace ('@\b('.$kelimeler.')\b@si', '<strong style="background-color:red">$1</strong>', $metin);
}
 
echo vurgula('Bu metindeki Linux, Apache, Php, Mysql kelimeleri renklendirilecek.', array ('Linux', 'Apache', 'Php', 'Mysql'));
 
?>

Php Url Kısaltma

php Yorum Yok »

Siz de bir twitter kullanıcısı iseniz bilirsiniz, yazacağınız mesajlar 140 karakterle sınırlıdır. Bu sebepten mesajlarınıza bir link eklemek istediğinizde sıkıntı yaşayabilirsiniz. Bu durumu aşmak için internette çeşitli url kısaltma servisleri mevcut. Bunlardan bazılarını api’leri yardımı ile php uygulamalarımızda kullanabiliriz.

İlk olarak üyelik gerektirmeyen Tinyurl.com ile başlayalım :

function getTinyUrl($url)
{
	return file_get_contents("http://tinyurl.com/api-create.php?url=".$url);
}
 
$turl = getTinyUrl('http://www.lampforweb.com/index.php/diger/php-url-kisaltma/');
echo $turl;
 
//http://tinyurl.com/337y28b

Tinyurl.com servisinin kullanımı kolay fakat alan adı nedeni ile karakter sayısında dezavantajları olabiliyor. Alternatif olarak bit.ly servisini kullanabiliriz. bit.ly için öncelikle üye olmanız ve http://bit.ly/a/your_api_key adresinden API kodunuzu almanız gerekiyor.

function getBitly($url)
{
	$content = file_get_contents("http://api.bit.ly/v3/shorten?login=YOURLOGIN&apiKey=YOURAPIKEY&longUrl=".$url."&format=xml");
	$element = new SimpleXmlElement($content);
	$bitly = $element->data->url;
	if($bitly)
	{
		return $bitly;
	}else
	{
		return '0';
	}
}
 
$burl = getBitly('http://www.lampforweb.com/index.php/diger/php-url-kisaltma/');
echo $burl;
 
//http://bit.ly/eWgVL4

Php’de serialize ve base64_encode ile sayfalar arasında dizi veya nesneleri taşımak

php 4 Yorum »

Php sayfaları arasında POST veya GET metoduyla gelen değerleri veya sayfa içindeki dizi veya nesnelerin alt elemanlarıyla beraber değerlerini taşımak için aşağıdaki yöntemi kullanabilirsiniz.

form.html // Form verilerinin POST metodu ile gönderileceği form sayfası.

<html>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<title>Form</title>
</head>
<body>
	<form action="islem1.php" method="POST">
		Adı : <input type="text" name="adi" size="30"><br>
		Soyadı : <input type="text" name="soyadi" size="30"><br>
		Email : <input type="text" name="email" size="50"><br>
		Telefon : <input type="text" name="Telefon" size="30"><br>
		Şehir : <select name="sehir">
          	<option>İstanbul</option>
          	<option>Ankara</option>
          	<option>İzmir</option>
        	</select><br>
    <input type="submit" value="Gönder">
	</form>
</body>
</html>

islem1.php //Formdan POST metoduyla gelen değerler islem2.php dosyasına aktarılacak.

<?
$param=base64_encode(serialize($_POST));
 
$link = 'islem2.php?data='.$param;
?>
<html>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<title>1. Adım</title>
</head>
<body>
	<a href="<?=$link?>">2. Adıma Geç</a>
</body>
</html>

Burada form verilerini aktarmak için php’nin serialize ve base64_encode fonksiyonlarını kullanıyoruz. Serialize fonksiyonu bir değişken(dizi veya nesne) içindeki değerleri string’e dönüştürür. base64_encode fonksiyonu ise verilen değeri 64 bit olarak şifreler ve yine string bir değer oluşturur. Oluşturduğumuz bu string değeri sayfalar arasında taşımak, formdaki her bir değeri ayrı ayrı yazıp taşımaktan daha kolaydır. Hatta bazı durumlarda değişkenlerde değişebileceği için bu yöntem daha sağlıklı olacaktır.

<?
$renk[0]='mavi';
$renk[1]='kırmızı';
$renk[2]='yeşil';
$data = serialize($renk);
 
echo $data;
//a:3:{i:0;s:4:"mavi";i:1;s:10:"kırmızı";i:2;s:6:"yeşil";}
 
$data=base64_encode($data);
 
echo $data;
//YTozOntpOjA7czo0OiJtYXZpIjtpOjE7czoxMDoia8Sxcm3EsXrEsSI7aToyO3M6NjoieWXFn2lsIjt9
?>

islem2.php //islem1.php sayfasındaki form değerleri bu sayfaya aktarıldı.

<html>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<title>2. Adım</title>
</head>
<body>
<?
if(isset($_GET['data']))
{
	$_POST=unserialize(base64_decode($_GET['data']));
	echo 'Adı : '.$_POST['adi'].'<br>';
	echo 'Soyadı : '.$_POST['soyadi'].'<br>';
	echo 'Email : '.$_POST['email'].'<br>';
	echo 'Şehir : '.$_POST['sehir'].'<br>';
}
?>
</body>
</html>

islem1.php dosyasından aktarılan değerleri yeniden kullanabilmemiz için yaptığımız işlemlerin tersini gerçekleştirmemiz gerekiyor. base64_encode ile şifrelediğimiz veriyi base64_decode fonksiyonu ile dönüştürüyoruz. serialize ile string hale dönüştürdüğümüz verieri de unserialize ile dönüştürüyoruz. Artık değişkenlerimizi sayfa içerisinde kullanabiliriz.

Dinamik açılan kutular oluşturma

mysql, php Yorum Yok »

Projelerimizde sıkça ihtiyaç duyabileceğimiz konulardan biri olan veritabanındaki veriler ile dinamik açılan kutular oluşturma için güzel bir örnek.

Devamını Oku »

Lampforweb 2007 Tüm hakları saklıdır. Tema N.Design Studio
İçerik RSS Yorum RSS Giriş