tpug            Sun Dec  9 21:24:49 2001 EDT

  Added files:                 
    /phpdoc/tr/features error-handling.xml persistent-connections.xml 
                        remote-files.xml 
  Log:
  complete translation by Alper
  

Index: phpdoc/tr/features/error-handling.xml
+++ phpdoc/tr/features/error-handling.xml
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.1 $ -->
 <chapter id="features.error-handling">
  <title>Hata &Idot;�lemleri</title>
 
  <para>
   PHP'de pek �ok uyar&inodot; �e�idi vard&inodot;r. Bunlar:

   <table>
    <title>PHP uyar&inodot; �e�itleri</title>
    <tgroup cols="4">
     <thead>
      <row>
       <entry>De&gbreve;er</entry>
       <entry>Sabit</entry>
       <entry>Tan&inodot;m</entry>
       <entry>Not</entry>
      </row>
     </thead>
     <tbody>
      <row>
       <entry>1</entry>
       <entry>E_ERROR</entry>
       <entry>hayati �al&inodot;�ma hatalar&inodot;</entry>
       <entry></entry>
      </row>
      <row>
       <entry>2</entry>
       <entry>E_WARNING</entry>
       <entry>�al&inodot;�ma uyar&inodot;lar&inodot; (hayati olmayan hatalar)</entry>
       <entry></entry>
      </row>
      <row>
       <entry>4</entry>
       <entry>E_PARSE</entry>
       <entry>derleme s&inodot;ras&inodot;nda ayr&inodot;�t&inodot;rma 
hatalar&inodot;</entry>
       <entry></entry>
      </row>
      <row>
       <entry>8</entry>
       <entry>E_NOTICE  </entry>
       <entry>
        �al&inodot;�ma s&inodot;ras&inodot;ndaki bildirimler (uyar&inodot;lardan daha 
az �nemli)
       </entry>
       <entry></entry>
      </row>
      <row>
       <entry>16</entry>
       <entry>E_CORE_ERROR</entry>
       <entry>PHP'nin i� yap&inodot;s&inodot;yla ilgili, 
ba�lat&inodot;lmas&inodot;n&inodot; engelleyen hayati hatalar</entry>
       <entry>sadece PHP 4</entry>
      </row>
      <row>
       <entry>32</entry>
       <entry>E_CORE_WARNING</entry>
       <entry>
        PHP'nin i� yap&inodot;s&inodot;yla ilgili, ba�lat&inodot;lmas&inodot; ile 
ilgili uyar&inodot;lar (hayati olmayan
        hatalar)
       </entry> 
       <entry>sadece PHP 4</entry>
      </row>
      <row>
       <entry>64</entry>
       <entry>E_COMPILE_ERROR</entry>
       <entry>hayati derleme hatalar&inodot;</entry>
       <entry>Sadece PHP 4</entry>
      </row>
      <row>
       <entry>128</entry>
       <entry>E_COMPILE_WARNING</entry>
       <entry>derleme s&inodot;ras&inodot;ndaki uyar&inodot;lar (hayati olmayan 
hatalar)</entry>
       <entry>sadece PHP 4</entry>
      </row>
      <row>
       <entry>256</entry>
       <entry>E_USER_ERROR</entry>
       <entry>kullan&inodot;c&inodot;n&inodot;n yaratt&inodot;&gbreve;&inodot; hata 
mesaj&inodot;</entry>
       <entry>sadece PHP 4</entry>
      </row>
      <row>
       <entry>512</entry>
       <entry>E_USER_WARNING</entry>
       <entry>kullan&inodot;c&inodot;n&inodot;n yaratt&inodot;&gbreve;&inodot; 
uyar&inodot; mesaj&inodot;</entry>
       <entry>sadece PHP 4</entry>
      </row>
      <row>
       <entry>1024</entry>
       <entry>E_USER_NOTICE </entry>
       <entry>kullan&inodot;c&inodot;n&inodot;n yaratt&inodot;&gbreve;&inodot; bildiri 
mesaj&inodot;</entry>
       <entry>sadece PHP 4</entry>
      </row>
      <row>
       <entry></entry>
       <entry>E_ALL</entry>
       <entry>desteklendi&gbreve;i s�rece, yukar&inodot;dakilerin hepsi</entry>
       <entry></entry>
      </row>
     </tbody>
    </tgroup>
   </table>
  </para>

  <para>
   Yukar&inodot;daki de&gbreve;erler (say&inodot;sal veya sembolik) hangi 
hatalar&inodot;n bildirilece&gbreve;ini
   belirleyen bit maskesini olu�tururken kullan&inodot;l&inodot;r. Bu de&gbreve;erleri
   birle�tirmeyi veya baz&inodot;lar&inodot;n&inodot; maskelemeyi
   <link linkend="language.operators.bitwise">bit-tabanl&inodot; i�lemler</link> ile
   yapabilirsiniz. <filename>php.ini</filename> i�inde sadece '|', '~', '!' ve
   '&amp;' i�lemlerinin anla�&inodot;laca&gbreve;&inodot;na, ve 
<filename>php3.ini</filename>
   i�inde hi�birinin anla�&inodot;lmayaca&gbreve;&inodot;na dikkat edin.
  </para>
  <para>
   PHP 4'te �ntan&inodot;ml&inodot; <link
    linkend="ini.error-reporting">error_reporting</link> de&gbreve;eri <literal>E_ALL
    &amp; ~E_NOTICE</literal>'dir ve anlam&inodot; E-NOTICE-seviyesi 
d&inodot;�&inodot;ndaki t�m
   hatalar&inodot;n ve uyar&inodot;lar&inodot;n bildirilmesidir. PHP 3'de 
�ntan&inodot;ml&inodot; ayar
   <literal>(E_ERROR | E_WARNING | E_PARSE)</literal>'d&inodot;r ve anlam&inodot; 
�ncekiyle
   ayn&inodot;d&inodot;r. Fakat dikkat edin ki, PHP 3'�n <filename>php3.ini</filename>
   dosyas&inodot;nda sabitler desteklenmedi&gbreve;inden <link
    linkend="ini.error-reporting">error_reporting</link> ayar&inodot; say&inodot;sal 
olmak
   durumundad&inodot;r; az �nce belirtilen de&gbreve;er de <literal>7</literal>'ye denk
   gelir.
  </para>

  <para>
   Ba�lang&inodot;� de&gbreve;eri ini dosyas&inodot;nda <link
    linkend="ini.error-reporting">error_reporting</link> direktifyle,
   Apache'nizin <filename>httpd.conf</filename> dosyas&inodot;nda php_error_reporting
   (PHP 3 i�in php3_error_reporting) direktifiyle, ve son olarak �al&inodot;�ma
   esnas&inodot;nda betik i�inden <function>error_reporting</function> fonksiyonuyla
   belirlenebilir.
  </para>
  
  <warning>
   <para>
    Sunucular&inodot;n&inodot;z&inodot; veya kodlar&inodot;n&inodot;z&inodot; PHP 
3'ten PHP 4'e y�kseltirken bu ayarlar&inodot;
    ve <function>error_reporting</function> fonksiyonu 
�a&gbreve;r&inodot;mlar&inodot;n&inodot; kontrol
    etmelisiniz yoksa istemeyerek yeni hata �e�itlerinin bildirimlerini
    kapatabilirsiniz, �zellikle E_COMPILE_ERROR. Bu hatan&inodot;n ne ve nerede
    oldu&gbreve;una dair hi� bir bilgi b&inodot;rakmadan betiklerinizin tamamiyle bo�
    sayfalar �retmesine yola�abilir.
   </para>
  </warning>
    
  <para>
   T�m <link linkend="language.expressions">PHP ifadeler</link> @ �n-ekiyle
   �a&gbreve;r&inodot;labilir. Bu �n-ek, o ifade i�in hata bildirimini 
kapatacakt&inodot;r. E&gbreve;er
   b�yle bir ifade s&inodot;ras&inodot;nda hata olu�ursa, ve <link
    linkend="ini.track-errors">track_errors</link> �zelli&gbreve;i aktifse, hata
   mesaj&inodot;n&inodot; <literal>$php_errormsg</literal> genel de&gbreve;i�keninde
   bulabilirsiniz.
  </para>

  <note>
   <para>
    <link linkend="language.operators.errorcontrol">@ hata-kontrol
     i�lemi</link> �n-eki ayr&inodot;�t&inodot;rma hatalar&inodot;n&inodot; 
kapatmayacakt&inodot;r.
   </para>
  </note>

  <warning>
   <para>
    &Scedil;u an i�in <link linkend="language.operators.errorcontrol">@
     hata-kontrol i�lemi</link> �n eki betik sonland&inodot;r&inodot;lmas&inodot;na 
yol a�acak
    kritik hatalar&inodot;n bile g�sterilmesini engelleyecektir. Di&gbreve;er �eylerin
    d&inodot;�&inodot;nda, bu demektir ki <link
     linkend="language.operators.errorcontrol">@</link> �n-ekini belli
    fonksiyonlardan gelecek hatalar&inodot; bast&inodot;rmak i�in 
kullan&inodot;rsan&inodot;z, ve bu
    fonksiyonlar tan&inodot;ml&inodot; de&gbreve;ilse, betik nedeni belirtilmeden
    sonland&inodot;r&inodot;lacakt&inodot;r.
   </para>
  </warning>

  <para>
   A�a&gbreve;&inodot;da PHP'deki hata kontrol� i�lemlerinin kullan&inodot;m&inodot;na 
ili�kin bir �rnek
   bulacaks&inodot;n&inodot;z. Burada bilgileri bir g�nl�kte (XML format&inodot;yla) 
saklayan ve
   programc&inodot;ya kritik hatalarda e-mail yollayan bir hata i�leme fonksiyonu 
tan&inodot;ml&inodot;yoruz. 
   <example>
    <title>Betik i�in hata i�lemenin kullan&inodot;m&inodot;</title>
    <programlisting role="php">
<![CDATA[
<?php
// kendi bildirimimizi kendimiz yapaca��z
error_reporting(0);

// kullan�c� taraf�ndan belirlenen hata i�leme fonksiyonu
function userErrorHandler ($errno, $errmsg, $filename, $linenum, $vars) {
    // girilen hata i�in zaman de�eri
    $dt = date("Y-m-d H:i:s (T)");

    // hata dizgileri i�in bir ili�kili dizi tan�mla
    // ger�ekte ilgilenmemiz gereken de�erler sadece
    // 2, 8, 256, 512, ve 1024
    $errortype = array (
                1   =>  "Hata",
                2   =>  "Uyar�",
                4   =>  "Ayr��t�rma Hatas�",
                8   =>  "Bildirim",
                16  =>  "�ekirdek Hatas�",
                32  =>  "�ekirdek Uyar�s�",
                64  =>  "Derleme Hatas�",
                128 =>  "Derleme Uyar�s�",
                256 =>  "Kullan�c� Hatas�",
                512 =>  "Kullan�c� Uyar�s�",
                1024=>  "Kullan�c� Bildirimi"
                );
    // de�i�ken izi kaydedilecek hatalar
    $user_errors = array(E_USER_ERROR, E_USER_WARNING, E_USER_NOTICE);
    
    $err = "<errorentry>\n";
    $err .= "\t<datetime>".$dt."</datetime>\n";
    $err .= "\t<errornum>".$errno."</errnumber>\n";
    $err .= "\t<errortype>".$errortype[$errno]."</errortype>\n";
    $err .= "\t<errormsg>".$errmsg."</errormsg>\n";
    $err .= "\t<scriptname>".$filename."</scriptname>\n";
    $err .= "\t<scriptlinenum>".$linenum."</scriptlinenum>\n";

    if (in_array($errno, $user_errors))
        $err .= "\t<vartrace>".wddx_serialize_value($vars,"Variables")."</vartrace>\n";
    $err .= "</errorentry>\n\n";
    
    // deneme i�in
    // echo $err;

    // hata g�nl���n� kaydet, ve kritik kullan�c� hatalar�nda bana mail yolla
    error_log($err, 3, "/usr/local/php4/error.log");
    if ($errno == E_USER_ERROR)
        mail("[EMAIL PROTECTED]","Kritik Kullan�c� Hatas�",$err);
}


function distance ($vect1, $vect2) {
    if (!is_array($vect1) || !is_array($vect2)) {
        trigger_error("Bozuk parametreler, dizi bekleniyordu", E_USER_ERROR);
        return NULL;
    }

    if (count($vect1) != count($vect2)) {
        trigger_error("Vekt�rlerin ayn� boyutta olmas� gerekiyor", E_USER_ERROR);
        return NULL;
    }

    for ($i=0; $i<count($vect1); $i++) {
        $c1 = $vect1[$i]; $c2 = $vect2[$i];
        $d = 0.0;
        if (!is_numeric($c1)) {
            trigger_error("Vekt�r 1'in $i koordinat� say� de�il, 0 olarak al�nd�", 
                            E_USER_WARNING);
            $c1 = 0.0;
        }
        if (!is_numeric($c2)) {
            trigger_error("Vekt�r 2'in $i koordinat� say� de�il, 0 olarak al�nd�", 
                            E_USER_WARNING);
            $c2 = 0.0;
        }
        $d += $c2*$c2 - $c1*$c1;
    }
    return sqrt($d);
}

$old_error_handler = set_error_handler("userErrorHandler");

// tan�mlanmam�� sabit, uyar� olu�turur
$t = I_AM_NOT_DEFINED;

// baz� "vekt�rler" tan�mla
$a = array(2,3,"foo");
$b = array(5.5, 4.3, -1.6);
$c = array (1,-3);

// kullan�c� hatas� olu�turur
$t1 = distance($c,$b)."\n";

// ba�ka bir kullan�c� hatas� olu�turur
$t2 = distance($b,"i am not an array")."\n";

// uyar� olu�turur
$t3 = distance($a,$b)."\n";

?>
]]>
    </programlisting>
   </example>
   Bu <link linkend="ref.errorfunc">Hata &Idot;�leme ve G�nl�k 
fonksiyonlar&inodot;</link>
   hakk&inodot;nda basit bir �rnek.
  </para>

  <para>
   Ayr&inodot;ca bkz. <function>error_reporting</function>,
   <function>error_log</function>,
   <function>set_error_handler</function>,
   <function>restore_error_handler</function>, 
   <function>trigger_error</function>,
   <function>user_error</function>
  </para>

 </chapter>

<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
sgml-parent-document:nil
sgml-default-dtd-file:"../../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->

Index: phpdoc/tr/features/persistent-connections.xml
+++ phpdoc/tr/features/persistent-connections.xml
<?xml version="1.0" encoding="iso-8859-9"?>
<!-- $Revision: 1.1 $ -->
 <chapter id="features.persistent-connections">
  <title>Kal&inodot;c&inodot; Veritaban&inodot; 
Ba&gbreve;lant&inodot;lar&inodot;</title>

  <simpara>
   Kal&inodot;c&inodot; ba&gbreve;lant&inodot;lar, beti&gbreve;iniz 
sonland&inodot;&gbreve;&inodot;nda kapat&inodot;lmayan SQL 
ba&gbreve;lant&inodot;lar&inodot;na
   denir. Kal&inodot;c&inodot; bir ba&gbreve;lant&inodot; istendi&gbreve;inde, PHP 
daha �nceden tamamen ayn&inodot;
   �zelliklerde ba&scedil;ka bir kal&inodot;c&inodot; ba&gbreve;lant&inodot; 
a�&inodot;l&inodot;p a�&inodot;lmad&inodot;&gbreve;&inodot;na bakar (daha
   �nceden kalan) - ve e&gbreve;er varsa, onu kullan&inodot;r. E&gbreve;er yoksa, yeni 
ba&gbreve;lant&inodot;y&inodot;
   yapar. 'Tamamen ayn&inodot;' ba&gbreve;lant&inodot;lar, ayn&inodot; sunucuya, 
ayn&inodot; kullan&inodot;c&inodot; ismi ve
   &scedil;ifreyle (gerekliyse) a�&inodot;lm&inodot;&scedil; 
ba&gbreve;lant&inodot;lard&inodot;r.
  </simpara>

  <simpara>
   HTTP sunucular&inodot;n&inodot;n �al&inodot;&scedil;ma 
mant&inodot;&gbreve;&inodot;na a&scedil;ina olmayanlar, kal&inodot;c&inodot; 
ba&gbreve;lant&inodot;lar&inodot;
   ger�ekte olmad&inodot;klar&inodot; &scedil;eyler sanabilirler. �zellikle, 
ayn&inodot; SQL ba&gbreve;lant&inodot;s&inodot;
   �zerinde 'kullan&inodot;c&inodot; oturumlar&inodot;' <emphasis>a�mazlar</emphasis>,
   transaction'lar&inodot; daha etkili bir &scedil;ekilde yapman&inodot;z&inodot;
   <emphasis>sa&gbreve;lamazlar</emphasis> ve ba&scedil;ka pek �ok &scedil;eyi 
ger�ekle&scedil;tirmezler.
   Konu hakk&inodot;nda daha a�&inodot;k olmak gerekirse, kal&inodot;c&inodot; 
ba&gbreve;lant&inodot;lar size karde&scedil;leri
   kal&inodot;c&inodot; olmayan ba&gbreve;lant&inodot;lar&inodot;n 
sunmad&inodot;&gbreve;&inodot; hi� bir ek �zellik
   <emphasis>sunmazlar</emphasis>.
  </simpara>
  <simpara>
   Neden?
  </simpara> 
  <simpara>
   Bu daha �ok HTTP sunucular&inodot;n&inodot;n �al&inodot;&scedil;ma 
mant&inodot;&gbreve;&inodot;yla alakal&inodot;. Sunucunun
   PHP'yi kullanarak web sayfalar&inodot; olu&scedil;turmas&inodot;n&inodot;n �� 
y�ntemi var.
  </simpara>
  <simpara>
   <!-- dirge: wrapper => sarg&inodot; -->
   &Idot;lk y�ntem PHP'yi CGI "sarg&inodot;s&inodot;" olarak kullanmak. Bu 
&scedil;ekilde �al&inodot;&scedil;t&inodot;&gbreve;&inodot;nda,
   sunucuya gelen her sayfa iste&gbreve;i i�in ayr&inodot; bir PHP 
yorumlay&inodot;c&inodot;s&inodot; yarat&inodot;l&inodot;r
   ve yokedilir (PHP sayfalar&inodot; i�in). &Idot;&scedil;lemler sonunda 
yokedildikleri i�in,
   yaratt&inodot;klar&inodot; her kaynak (SQL sunucusuna ba&gbreve;lant&inodot;lar 
gibi) da onlarla
   birlikte yokolur. Bu durumda, kal&inodot;c&inodot; ba&gbreve;lant&inodot;lar 
kurmay&inodot; denemekle elinize
   hi�bir&scedil;ey ge�mez -- basit�e, kal&inodot;c&inodot; olamazlar.
  </simpara>
  <simpara>
   &Idot;kinci, ve en pop�ler, y�ntem PHP'yi �ok i&scedil;lemli (multiprocess) bir
   sunucuda mod�l olarak kullanmak, &scedil;u an sadece Apache'de oldu&gbreve;u gibi. 
�ok
   i&scedil;lemli bir sunucu genellikle bir ana i&scedil;lemden (parent) ve onun 
kontrol�ndeki
   ger�ekte i&scedil;lemleri yapan �ocuk i&scedil;lemlerden (children) olu&scedil;ur. 
Ne zaman bir
   al&inodot;c&inodot;dan istek gelse, o anda ba&scedil;ka bir iste&gbreve;e cevap 
vermeyen bir �ocuk
   i&scedil;leme devredilir. Bu demektir ki, ayn&inodot; al&inodot;c&inodot; ikinci 
bir istek yollad&inodot;&gbreve;&inodot;nda,
   ba&scedil;ka bir �ocuk i&scedil;lem taraf&inodot;ndan kar&scedil;&inodot;lanabilir. 
Kal&inodot;c&inodot; ba&gbreve;lant&inodot;lar&inodot;n
   sizin i�in burada yapt&inodot;&gbreve;&inodot; i&scedil;, her �ocuk i&scedil;lemin 
sadece ilk seferde SQL
   sunucusuna ba&gbreve;lanmas&inodot;. Ba&scedil;ka bir sayfan&inodot;n ayn&inodot; 
ba&gbreve;lant&inodot;ya duymas&inodot; durumunda
   �nceden yap&inodot;lm&inodot;&scedil; ba&gbreve;lant&inodot; 
kullan&inodot;l&inodot;r.
  </simpara>
  <simpara>
   <!-- dirge: thread => i&scedil; par�ac&inodot;&gbreve;&inodot; -->
   Son y�ntem PHP'yi �ok i&scedil; par�ac&inodot;kl&inodot; (multithreaded) 
sunucularda eklenti
   olarak kullanmak. &Scedil;u anda PHP 4'�n Netscape FastTrack (iPlanet), Microsoft
   Internet Information Server (IIS), ve O'Reilly Website Pro gibi �ok i&scedil;
   par�ac&inodot;kl&inodot; sunucularda �al&inodot;&scedil;mas&inodot;n&inodot; 
sa&gbreve;layan ISAPI, WSAIP, ve NSAPI
   (Windows'ta) i�in deste&gbreve;i var. Bu �al&inodot;&scedil;ma &scedil;ekli az �nce 
anlat&inodot;lan �ok
   i&scedil;lemli modelle ayn&inodot;. SAPI deste&gbreve;inin PHP 3'te 
olmad&inodot;&gbreve;&inodot;na dikkat edin.
  </simpara>
  <simpara>
   E&gbreve;er kal&inodot;c&inodot; ba&gbreve;lant&inodot;lar&inodot;n ek �zellikleri 
yoksa, neye yararlar?
  </simpara>
  <simpara>
   <!-- dige: efficiency => etkinlik -->
   Buradaki cevap olduk�a basit -- etkinlik. Kal&inodot;c&inodot; 
ba&gbreve;lant&inodot;lar, SQL
   sunucunuza yeni ba&gbreve;lant&inodot; a�mak performans a�&inodot;s&inodot;ndan 
hesapl&inodot; de&gbreve;ilse 
   �ok i&scedil;e yararlar. Performans hesapl&inodot;l&inodot;&gbreve;&inodot; pek �ok 
&scedil;eye ba&gbreve;l&inodot;d&inodot;r. �rne&gbreve;in, ne
   t�r bir veritaban&inodot; oldu&gbreve;u, HTTP sunucusuyla ayn&inodot; bilgisayarda 
olup
   olmay&inodot;&scedil;&inodot;, SQL sunucusunun 
�al&inodot;&scedil;t&inodot;&gbreve;&inodot; bilgisayar&inodot;n i&scedil;lem 
yo&gbreve;unlu&gbreve;u ve
   benzeri. Sonu� &scedil;u ki, yeni ba&gbreve;lant&inodot; performans&inodot; 
d�&scedil;�kse, kal&inodot;c&inodot; ba&gbreve;lant&inodot;lar
   i&scedil;e yarar. Her �ocuk i&scedil;lemin her seferinde yeni 
ba&gbreve;lant&inodot; a�mas&inodot; yerine
   hayat&inodot; boyunca sadece bir kere ba&gbreve;lant&inodot; 
yapmas&inodot;n&inodot; ve s�rekli onu kullanmas&inodot;n&inodot;
   sa&gbreve;larlar. Bu demektir ki, kal&inodot;c&inodot; ba&gbreve;lant&inodot; a�an 
her �ocuk i&scedil;lemin SQL
   sunucusuna kendine ait kal&inodot;c&inodot; bir ba&gbreve;lant&inodot;s&inodot; 
olacakt&inodot;r. �rne&gbreve;in, 20 tane
   kal&inodot;c&inodot; ba&gbreve;lant&inodot; a�an betik 
�al&inodot;&scedil;t&inodot;rm&inodot;&scedil; farkl&inodot; �ocuk i&scedil;lem varsa, 
SQL
   sunucusuna 20 tane ba&gbreve;lant&inodot; olacakt&inodot;r, her �ocuk 
i&scedil;lemden bir tane.
  </simpara>
  <simpara>
   Ancak dikkat edin ki, bunun SQL sunucusunun ba&gbreve;lant&inodot; limiti 
kal&inodot;c&inodot;
   ba&gbreve;lant&inodot;larla a&scedil;&inodot;ld&inodot;&gbreve;&inodot;nda bir 
tak&inodot;m g�t�r�ler olacakt&inodot;r. E&gbreve;er veritaban&inodot;
   sunucunuz ayni anda 16 ba&gbreve;lant&inodot;ya izin veriyorsa, ve yo&gbreve;un bir 
�al&inodot;&scedil;ma
   an&inodot;nda 17 �ocuk i&scedil;lem kal&inodot;c&inodot; ba&gbreve;lant&inodot; 
a�maya kalkarsa, bunlardan biri
   ba&gbreve;lant&inodot;y&inodot; a�amaz. E&gbreve;er betiklerinizde 
ba&gbreve;lant&inodot;lar&inodot;n kapanabilmesine olanak
   tan&inodot;mayan hatalar varsa (k&inodot;s&inodot;r d�ng� gibi), 32 
ba&gbreve;lant&inodot;ya izin verecek bir
   veritaban&inodot; sunucusu �ok �abuk bir &scedil;ekilde 
kullan&inodot;&scedil;s&inodot;z hale gelir. Bo&scedil; duran
   (idle) ba&gbreve;lant&inodot;larla nas&inodot;l ilgilenece&gbreve;iniz konusunda 
veritaban&inodot;n&inodot;z&inodot;n
   d�k�manlar&inodot;na ba&scedil;vurun.
  </simpara>
  <warning>
   <simpara>
    Kal&inodot;c&inodot; ba&gbreve;lant&inodot; kullan&inodot;rken ak&inodot;lda 
tutulmas&inodot; gereken birka� ek g�t�r� daha
    var. �rne&gbreve;in kal&inodot;c&inodot; bir ba&gbreve;lant&inodot;yla bir tablo 
kitlendiyse (LOCK), ve betik
    herhangi bir sebepten dolay&inodot; kilidi kald&inodot;ram&inodot;yorsa, 
ard&inodot;s&inodot;ra gelen
    ve ayn&inodot; ba&gbreve;lant&inodot;y&inodot; kullanacak betikler s�resiz olarak 
bloke olacak, ve
    sizin ya HTTP sunucusunu ya da veritaban&inodot; sunucusunu ba&scedil;tan 
�al&inodot;&scedil;t&inodot;rman&inodot;z
    gerekecektir. Ba&scedil;ka bir g�t�r� transaction kullan&inodot;rken 
olu&scedil;abilir. Bir
    transaction blo&gbreve;u, beti&gbreve;in �al&inodot;&scedil;ma s�resi 
blo&gbreve;un �mr�nden kisaysa, bir
    sonraki beti&gbreve;e ta&scedil;&inodot;nacakt&inodot;r. &Idot;ki durumda da
    <function>register_shutdown_function</function> ile transaction'i geri
    alacak ya da tablo kilitlerini kald&inodot;racak bir temizlik fonksiyonu
    kaydedebilirsiniz. Daha iyisi, problemleri t�m�yle �nlemek i�in tablo
    kilitleri veya transaction kullanan betiklerde kal&inodot;c&inodot; 
ba&gbreve;lant&inodot;lar&inodot;
    kullanmamak (ba&scedil;ka yerlerde hala kullanabilirsiniz).
   </simpara>
  </warning>
  <simpara>
   �nemli bir �zet. Kal&inodot;c&inodot; ba&gbreve;lant&inodot;lar normal 
ba&gbreve;lant&inodot;larla birebir
   e&scedil;lenebilecek &scedil;ekilde tasarland&inodot;. Bu demektir ki <emphasis>her
    zaman</emphasis> kal&inodot;c&inodot; ba&gbreve;lant&inodot;lar&inodot; normal 
olanlarla de&gbreve;i&scedil;tirebilirsiniz,
   ve bu betiklerin davran&inodot;&scedil;lar&inodot;n&inodot; etkilemeyecektir. 
Betiklerin etkinliklerini
   <emphasis>belki</emphasis> de&gbreve;i&scedil;tirebilirler, fakat 
davran&inodot;&scedil;&inodot;n&inodot;
   de&gbreve;i&scedil;tirmezler!
  </simpara>

 </chapter>

<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
sgml-parent-document:nil
sgml-default-dtd-file:"../../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->

Index: phpdoc/tr/features/remote-files.xml
+++ phpdoc/tr/features/remote-files.xml
<?xml version="1.0" encoding="iso-8859-9"?>
<!-- $Revision: 1.1 $ -->
 <chapter id="features.remote-files">
  <title>Uzaktaki Dosyalar&inodot; Kullanmak</title>

  <para>
   &quot;URL fopen wrapper&quot; PHP derlenmeden �nce aktifle&scedil;tirildi&gbreve;i 
(ki,
   --disable-url-fopen-wrapper parametresini �zellikle vermedi&gbreve;inizde
   b�yledir) (4.0.3 �ncesi s�r�mler i�in) veya php.ini'de
   <parameter>allow_url_fopen</parameter> ayar&inodot;na off de&gbreve;erini 
vermediyseniz
   (yeni s�r�mler i�in) s�rece, HTTP ve FTP URL'lerini parametre olarak
   dosya ismi alan �o&gbreve;u fonksiyonda, <function>require</function> ve
   <function>include</function> ifadeleri dahil, kullanabilirsiniz.
  </para>
  <para>
   <note>
    <para>
     Uzak dosyalar&inodot; Windows alt&inodot;nda <function>include</function> ve
     <function>require</function> ifadelerinde kullanamazs&inodot;n&inodot;z.
    </para>
   </note>
  </para>
  <para>
   �rne&gbreve;in, bunu uzaktaki bir HTTP sunucusunda olan bir dosyay&inodot; a�mak,
   �&inodot;kt&inodot;s&inodot;n&inodot; ay&inodot;klamak ve elde edilen bilgiyi bir 
veritaban&inodot; sorgusunda
   kullanmak, ya da basit�e web sitenizin geri kalan&inodot;na uygun bir g�r�nt�de
   g�stermek i�in kullanabilirsiniz.
  </para>
  <para>
   <example>
    <title>Uzaktaki bir sayfan&inodot;n ba&scedil;l&inodot;&gbreve;&inodot;n&inodot; 
almak</title>
    <programlisting role="php">
<![CDATA[
<?php
$file = fopen ("http://www.php.net/";, "r");
if (!$file) {
    echo "<p>Uzaktaki dosya a�&inodot;lamad&inodot;.\n";
    exit;
}
while (!feof ($file)) {
    $line = fgets ($file, 1024);
    /* Bu sadece title etiketi ve i�eri&gbreve;i ayn&inodot; sat&inodot;rdaysa 
i&scedil;e yarar */
    if (eregi ("<title>(.*)</title>", $line, $out)) {
        $title = $out[1];
        break;
    }
}
fclose($file);
?>
]]>
    </programlisting>
   </example>
  </para>
  <para>
   Ya da bunu, do&gbreve;ru eri&scedil;im hakk&inodot;na sahip bir 
kullan&inodot;c&inodot;yla ba&gbreve;land&inodot;&gbreve;&inodot;n&inodot;z
   ve �oktan dosya varolmad&inodot;&gbreve;&inodot; s�rece FTP ile uzaktaki dosyalara 
yazmak
   i�in kullanabilirsiniz. 'anonymous' d&inodot;&scedil;&inodot;nda bir 
kullan&inodot;c&inodot; olarak ba&gbreve;lanmak
   i�in kullan&inodot;c&inodot;y&inodot; (ve muhtemelen parolay&inodot;) URL i�ine 
yazmal&inodot;s&inodot;n&inodot;z, �rne&gbreve;in
   'ftp://kullan&inodot;c&inodot;:[EMAIL PROTECTED]/yol/dosya' gibi. (Ayn&inodot; 
y�ntemi
   HTTP'de Basic Authentication'a ihtiya� duyan dosyalara eri&scedil;mek i�in de
   kullanabilirsiniz.)
  </para>
  <para>
   <example>
    <title>Veriyi uzaktaki sunucuda saklamak</title>
    <programlisting role="php">
<![CDATA[
<?php
$file = fopen ("ftp://ftp.php.net/incoming/outputfile";, "w");
if (!$file) {
    echo "<p>Yazmak �zere uzak dosya a�&inodot;lamad&inodot;\n";
    exit;
}
/* Veriyi yaz */
fputs ($file, "$HTTP_USER_AGENT\n");
fclose ($file);
?>
]]>  
    </programlisting>
   </example>
  </para>
  <para>
   <note>
    <para>
     Yukar&inodot;daki �rnekten, uzaktaki bir g�nl�&gbreve;e yazmak i�in nas&inodot;l 
bir teknik
     kullanaca&gbreve;&inodot;n&inodot;z konusunda bir fikir 
alm&inodot;&scedil;s&inodot;n&inodot;zd&inodot;r, fakat �nceden
     belirtildi&gbreve;i gibi, URL fopen() sarg&inodot;lar&inodot;yla sadece yeni 
dosyalara
     yazabilirsiniz. Bunun gibi da&gbreve;&inodot;t&inodot;lm&inodot;&scedil; g�nl�k 
tutmak isterseniz,
     <function>syslog</function>'s bir g�z atmal&inodot;s&inodot;n&inodot;z.
    </para> 
   </note>
  </para>

 </chapter>

<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
sgml-parent-document:nil
sgml-default-dtd-file:"../../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->

Reply via email to