İyinet'e Hoşgeldiniz!

Türkiye'nin En Eski Webmaster Forum'una Hemen Kayıt Olun!

Kayıt Ol!

cache sistemi ile mysql yükü

maxcilopez

0
İyinet Üyesi
Katılım
27 Ekim 2006
Mesajlar
545
Reaction score
0
Mrb arkadaşlar ceviz.netten bir bilgi buldum
SÜPER BİR CACHE SİSTEMİ

Hepsini Kısaca Anlatacam

Server tarafında php dosyanız bir kere derlendikten sonra belirtiğiniz zaman geçene kadar sayfa bir daha derlenmiyor. Html Olarak Çekiyor.

Yani sitenize biri girdi sayfanız derlendi. Başka biri girdiğinde siteniz mysql e bağlanmıyor php bidaha derlemiyor. Direk ilk derlenmiş sayfa include ediliyor.
Eğer zamanı 2 gün olarak ayarladıysanız 2 gün sonra tekrar derleniyor

Şimdi bombayı patlatıyorum Eğer postla veri gönderdiyseniz o zaman sayfayı cachelemiyor. Yani devamlı dinamik olarak çalışması gereken kısım cachelenmiyor.

Sitenizin urlsi
www.site.com/index.php?id=1
www.site.com/index.php?id=2
www.site.com/index.php?id=3

gibi urller olabilir bunlar hiç fark etmez. Direk id=1 i cacheler

Çok işinize yarıyacağına inanıyorum
cache.php
PHP:
<?
/*
Kodlar Tamamen Murat HALAÇOĞLU tarafından yazılmıştır.
Ceviz.Net te paylaşmaktan gurur duyuyorum.

*/
$temp_dizin = 'c:\\tmp\\'; //Temp Dizininizin yolunu değiştirebilirsiniz örneğin 'cache/' şeklinde
$zaman = '+2 day'; // iki gün lük 2 gün yerine 2 second 2 month 2 minute yazılabilir

function mkdir_r($dirName, $rights=0777)
{
$dirs = explode('/', $dirName);
$dir='';
foreach ($dirs as $part)
{
$dir.=$part.'/';
if (!is_dir($dir) && strlen($dir)>0)
mkdir($dir, $rights);
}
}

function fwrite_m($dosya, $url, $zaman)
{
if ($fh = fopen("$dosya", "w"))
{
$icerik = file_get_contents($url);
$icerik .="\n\n".'<? $saniye ="'.strtotime("$zaman").'"; ?>';
fwrite($fh, $icerik);
fclose($fh);
}
}

function temp_yaz($dosya, $klasor, $temp_dizin)
{
$dosya = $temp_dizin.$klasor.'\\'.$dosya;
if (@include("$dosya"))
{
if($saniye < strtotime("now")) return "isle";
return "isleme";
}
else return "yok";
}

$klasor = str_replace("www.", "", $HTTP_HOST);
$dosya = $PHP_SELF.'_'.$_SERVER['QUERY_STRING'];
$dosya = str_replace("/", "", $dosya);
$getler = $_SERVER['QUERY_STRING'];
if (strstr($dosya, ":80")) { $a=explode(":80", $dosya); $dosya=$a[1];}
if ($getler == "") $getler = $_SERVER['QUERY_STRING']."x13x";
else $getler = $_SERVER['QUERY_STRING']."&x13x";

if (!strstr($_SERVER['QUERY_STRING'], "x13x"))
{
$url = 'http://'.$HTTP_HOST.$_SERVER['PHP_SELF'].'?'.$getler;

mkdir_r($temp_dizin.$klasor,"0700");

$isim = $temp_dizin.$klasor.'\\'.$dosya;
$sonuc ="";
$sonuc = temp_yaz($dosya, $klasor, $temp_dizin);

if ( $sonuc == "isle")
{
fwrite_m($isim, $url, $zaman);
exit();
}

if ($sonuc == "isleme") exit();

if ( $sonuc == "yok")
fwrite_m($isim, $url, $zaman);
}
?>


Nasıl Kullanacaksınız ?

Öncelikler Aşğıdaki Metini Cache.php İsimli bir dosyaya kayıt edin

sonra
cachelemek istediğiniz php sayfasnın başına şu kodu ekleyin
<?php include('Cache.php'); ?>


//Cache.php



kodlar denenmiştir. Gayet Yüksek performans aldım bilginize..


Sistem bu Ben bu sistemi deniyorum örneğin
http://www.birseyindir.org/page.php
sayfasına
<?php include('Cache.php'); ?> bu kodu koyuyorum ama bu şekilde hata veriyor ne yapabilirim tşk.


Warning: main(Cache.php) [function.main]: failed to open stream: No such file or directory in /home/birseyin/public_html/page.php on line 1

Warning: main(Cache.php) [function.main]: failed to open stream: No such file or directory in /home/birseyin/public_html/page.php on line 1

Warning: main() [function.include]: Failed opening 'Cache.php' for inclusion (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/birseyin/public_html/page.php on line 1

Birde bu sistem hakkındaki bigilniz nedir
Tabi bu sistemi uygulayacağım sitemin günlük 10k tekil hiti var sizce uygunmudur.
 

pCoX

0
İyinet Üyesi
Katılım
23 Ekim 2007
Mesajlar
0
Reaction score
0
Konum
Burda :)
cache.php sayfasinin hangi dizinde olduğuna eminmisiniz? yada ftp nizde mevcut olduğuna eminmisiniz ?

Bide page.php sayfasinin ilk 10 satirini buraya paste edin. Daha yararli yardimci olabiliriz size ;)

Büyük bi ihtimalle, bizden istediğiniz session_start() ve ob_start() komutlarının üstüne include() etmişsiniz. yada cache.php'yi görmüyor sisteminiz. Bunlar varsayimlar. Kodları gördükten sonra daha emin konusabilirim.
 

Cagatay

0
İyinet Üyesi
Katılım
10 Mart 2006
Mesajlar
2,789
Reaction score
0
24. satırda sorun var dedi ben denedim simdi ama.
cachep.php nin 24.satırında sorun oldugunu gösterdi
 

maxcilopez

0
İyinet Üyesi
Katılım
27 Ekim 2006
Mesajlar
545
Reaction score
0
Page.php nin içeriği
PHP:
<?php

 $connection = mysql_connect("xxxxx",
                            "xxxxxxxxx",
                            "xxxxxxxxx");
mysql_select_db("xxxxxxxxxx", $connection);

mysql_query("SET NAMES 'latin5'"); 

function utfyiwindowsa($metin) { 
$metin = str_replace("Ü","U",$metin); 
$metin = str_replace("Åz","S",$metin); 
$metin = str_replace("Äz","G",$metin); 
$metin = str_replace("Ç","Ç",$metin); 
$metin = str_replace("Ä°","I",$metin); 
$metin = str_replace("Ö","Ö",$metin); 
$metin = str_replace("ü","u",$metin); 
$metin = str_replace("ÅŸ","s",$metin); 
$metin = str_replace("ç","c",$metin); 
$metin = str_replace("ı","i",$metin); 
$metin = str_replace("ö","o",$metin); 
$metin = str_replace("ÄŸ","g",$metin); 

return $metin; 
} 

?> 
<html> 
<head>
<title>indir, yeni programlar, bedava oyun indir , Oyun indir, Program indir, film indir, okey indir, msn indir, inndir, java indir,  resim indir, msn programlari, oyun, bedava oyun, photoshop indir</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9" />
<meta name="description" content="indir, yeni programlar, bedava oyun indir , Oyun indir, Program indir, film indir, okey indir, msn indir, inndir, java indir,  resim indir, msn programlari, oyun, bedava oyun, photoshop indir" />
<meta name="keywords" content="indir, yeni programlar, bedava oyun indir , Oyun indir, Program indir, film indir, okey indir, msn indir, inndir, java indir,  resim indir, msn programlari, oyun, bedava oyun, photoshop indir" />
<meta name="generator" content="indir, yeni programlar, bedava oyun indir , Oyun indir, Program indir, film indir, okey indir, msn indir, inndir, java indir,  resim indir, msn programlari, oyun, bedava oyun, photoshop indir" />
<meta name="robots" content="all" />
<meta name="revisit-after" content="1 days" />
<meta name="verify-v1" content="tbKC5ec8lvIgRYoJ8h8AtqN6wXlcMXobMcmSMI4yqwk=" />
<link rel="search" type="application/opensearchdescription+xml" href="http://www.birseyindir.org/engine/opensearch.php" title="indir, yeni programlar, bedava oyun indir , Oyun indir, Program indir, film indir, okey indir, msn indir, inndir, java indir,  resim indir, msn programlari, oyun, bedava oyun, photoshop indir" />
<link rel="alternate" type="application/rss+xml" title="indir, yeni programlar, bedava oyun indir , Oyun indir, Program indir, film indir, okey indir, msn indir, inndir, java indir,  resim indir, msn programlari, oyun, bedava oyun, photoshop indir" href="http://www.birseyindir.org/rss.xml">
<link rel="alternate" type="application/rss+xml" title="RSS" href="/rss.xml">
<style type="text/css" media="all">
@import url(/templates/KingWarez/css/style.css);

.hr_line {
	background: url(/templates/KingWarez/images/line.gif);
	width: 100%;
	height: 7px;
	font-size: 3px;
	font-family: tahoma;
	margin-top: 4px;
	margin-bottom: 4px;
}
</style>
<style type="text/css" media="all">
@import url(/templates/KingWarez/css/engine.css);
table td{
padding:0px;
font-size: 11px;
font-family: verdana;
}

.list {
	font-size: 11px;
}


</style>


<script language="JavaScript" type="text/JavaScript">
<!--
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=lisanssız){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
//-->
</script>
</head>
<body>  <center>
<?php 

// SAYFA BASI KELIME
$pagination = 100;

// TOPLAM KELIME ADEDI
$q = mysql_query("SELECT id FROM sonaranan");
$num = mysql_num_rows($q);

// SAYFA SAYISI
$page = $num / $pagination;

    if (!is_integer($page)) {
    $page = intval($page) + 1;
    }


// SU ANKI SAYFA

    if ($_GET[page] == "") {
    $_GET[page] = 1;
    }



echo "Toplam $num kayit $page sayfada listeleniyor, şu anda $_GET[page] numaralı sayfadasınız.<br>Sayfa Değiştirin: <br>";

    for ($i=1; $i<=$page; $i++) {
    echo '<a href="page.php?page='.$i.'">'.$i.'</a>   ';
    }



echo '<br><br>';

// BASLANGIC
$limit = ($_GET[page] - 1) * $pagination;


$sorgu = mysql_query("SELECT * FROM sonaranan ORDER BY id DESC LIMIT $limit,$pagination");

echo '<p align="center"><table width="100%">';
$i=1;

    while ($oku = mysql_fetch_array($sorgu)) {

    $k = $i % 2;
    
        if ($k == "0") {
        echo '<td width="50%"><a title="'.$oku[aranan].'" name="'.$oku[aranan].'" href="indir/'.$oku[duzenli].'.html">'.$oku[aranan].'</a></td></tr>';
        }

        if ($k == "1") {
        echo '<tr><td width="50%"><a title="'.$oku[aranan].'" name="'.$oku[aranan].'" href="indir/'.$oku[duzenli].'.html">'.$oku[aranan].'</a></td>';
        }    
    $i++;
    }

echo '</table></p>';

?> 

</center>
</body> 
</html>

Ptp nin adres çubuğundaki adres =/public_html/yani
/public_html/page.php
/public_html/cache.php
aynı dizinde
birde
cache.php deki kodu bu şekilde düzenledim.
$temp_dizin = '/public_html/'; //Temp Dizininizin yolunu değiştirebilirsiniz örneğin 'cache/' şeklinde

İnclude kodunuda en üste koymuştum.
 

Türkiye’nin ilk webmaster forum sitesi iyinet.com'da forum üyeleri tarafından yapılan tüm paylaşımlardan; Türk Ceza Kanunu’nun 20. Maddesinin, 5651 Sayılı Kanununun 4. maddesinin 2. fıkrasına göre, paylaşım yapan üyeler sorumludur.

Backlink ve Tanıtım Yazısı için iletişime geçmek için Skype Adresimiz: .cid.1580508955483fe5

Üst