27 Şubat 2017 Pazartesi

İşaretçi Aritmetiği



İşaretçiler kullanılırken, bazen işaretçinin gösterdiği adres taban alınıp, o adresten önceki veya sonraki adreslere erişilmesi istenebilir.
Bu durum, işaretçiler üzerinde, aritmetik işlemcilerin kullanılmasını gerektirir.
İşaretçiler üzerinde yalnızca
toplama (+),
çıkarma (-),
bir arttırma (++) ,
bir eksiltme (--)
   operatörleri işlemleri yapılabilir

Aşağıdaki gibi üç tane gösterici bildirilmiş olsun:

char   *kar;    ?    10000 (0x2710)
int    *tam;    ?    20000 (0x4e20)
double *ger;    ?    30000 (0x7530)

Buna göre aşağıdaki atama işlemlerinin sonucu ne olmalıdır?
kar++;       
tam++;       
ger++;       

Bir işaretçiye ekleme yapıldığında, o anda tuttuğu adres ile eklenen sayı doğrudan toplanmaz.
Böyle olsaydı, bu atamaların sonuçları sırasıyla 10001, 20001 ve 30001 olurdu.
Gerçekte, işaretçiye bir eklemek, işaretçinin gösterdiği yerdeki veriden hemen sonraki verinin adresini hesaplamaktır
Buna göre atama işlemlerinin sonucu:
kar++;        ?    10001 (0x2711)
tam++;        ?    20004 (0x4e24)
ger++;        ?    30008 (0x7538)

Genel olarak, bir işaretçiye n sayısını eklemek veya çıkarmak, bellekte gösterdiği veriden sonra veya önce gelen n. elemanın adresini hesaplamaktır.
Buna göre aşağıdaki atamalar şöyle yorumlanır.
 kar++;      /* kar = kar +   sizeof(char)*/
 tam = tam + 5;/* tam = tam + 5*sizeof(int)*/
 ger = ger - 3; /*ger = ger - 3*sizeof(double)*/

Örnek: İşaretçi Aritmetiği



İşaretçi (Pointer) Kavramı


C dili, bir değişkenin adresinin bir başka değişkende saklanmasına izin verir. Bu değişkene işaretçi denir.
İşaretçi denmesinin sebebi ilgili değişkenin adresini işaret etmesinden yani göstermesinden kaynaklanır.
Diğer bir deyişle işaretçi, bir değişkenin adresini içeren başka bir değişkendir.

İşaretçiler, C’nin yönetilmesi en zor yetenekleri arasındadır.
Programların referansa göre çağırma yapmasını sağlarlar.
İşaretçiler sayesinde; Bağlı listeler (Linked List), Sıralar (Queue), Yığınlar (Stack) ve Ağaçlar (Tree) gibi büyüyüp küçülebilen dinamik veri yapılarının oluşturulması ve yönetilmesi sağlanır.


Bir işaretçi, diğer değişkenler gibi, sayısal bir değişkendir.
Bu sebeple kullanılmadan önce program içinde bildirilmelidir. İşaretçi tipindeki değişkenler aşağıdaki gibi tanımlanır:

    tip_adı *isaretci_adı;

Burada tip_adı herhangi bir C veri türü olabilir. Değişkenin önündeki * karakteri yönlendirme (indirection) operatörü olarak adlandırılır ve bu değişkenin veri değil bir adres bilgisi tutacağını işaret eder.



Örnek:
char  *kr;                   /* tek bir karakter için */
int   *x;                          /* bir tamsayı için */
float *deger, sonuc;   /* deger işaretçi tipinde, sonuc sıradan bir gerçel                   değişken */

Yukarıda bildirilen işaretçilerden; kr bir karakterin, x bir tamsayının ve deger bir gerçel sayının bellekte saklı olduğu yerlerin adreslerini tutar.

 int *ptam, tam = 33;
          .
          .
          .
 ptam = &tam;

Bir işaretçiye, bir değişkenin adresini atamak için & (adres) operatörünü kullanırız.
ptam işaretçisi tam değişkeninin saklandığı adresi tutacaktır.


Gösterimde, ptam göstericisinin içeriği tam değişkeninin içeriği (33) değil adresidir (0x3fffd14). Ayrıca, ptam değişkeni, bellekte başka bir hücrede saklandığına ve bu hücrenin int değil int * tipinde bir bölge olduğuna dikkat ediniz.






Örnek: İşaretçi Gösterimi ve Değer Değiştirme 





tam adlı değişkenin içeriğine ptam işaretçisi kullanılarak da erişilebilir.
Bunun için program içinde ptam değişkeninin önüne yönlendirme operatörü (*) koyulmuştur.
Yani *ptam, tam değişkeninin adresini değil içeriğini tutar. Buna göre:

              *ptam = 44;

komutuyla, ptam'ın adresini tuttuğu hücreye 44 değeri atanır.

Özetle
*ptam ve tam, tam adlı değişkenin içeriği ile ilgilidir.
ptam ve &tam, tam adlı değişkenin adresi ile ilgilidir.
* yönlendirme ve & (adres) operatörüdür.



Bellek ve Adresleme


Bilgisayarın ana belleği (RAM) sıralı kaydetme gözlerinden oluşmuştur.
Her göze bir adres atanmıştır.
Bu adreslerin değerleri 0 ila belleğin sahip olduğu üst değere bağlı olarak değişebilir.
Örneğin 1GB bir bellek,
1024*1024*1024 = 1073741824 adet gözden oluşur.

Bir programlama dillinde, belli bir tipte değişken tanımlanıp ve bir değer atandığında, o değişkene dört temel özellik eşlik eder:

değişkenin adı
değişkenin tipi
değişkenin sahip olduğu değer (içerik)
değişkenin bellekteki adresi






Örnek: Bellek ve Adresleme







Atama deyimlerine göre hücrelerin adreslere yerleşimi otomatik olarak gerçekleşir.
yas değişkeni 5400, 5401, 5402, 5403 adreslerini kapsadığından
boy değişkeni 5404 adresinden başlar ve sırasıyla 5405, 5406 ve 5407 adreslerini işgal eder.
kilo değişkeni bu nedenle 5408  adresinden başlar ve 5409, 5410, 5411 adreslerini kapsar.
cins değişkeni ise 5412 adresini tutar.

Örnekte belirtilen kod bloğundaki değişkenler bilgisayar tarafından belirli bir adreste saklanır. Bu yönteme implicit (örtük) adresleme denir.
İşaretçi değişken kullanılarak, işaretçilere verilerin bellekte saklandığı bellek hücrelerinin başlangıç adresleri atanır. Bu yönteme ise explicit (açık) adresleme denir.


Örnek:
    int tam = 33;

Bu değişken için, int tipinde bellekte (genellikle herbiri 1 bayt olan 4 bayt büyüklüğünde) bir hücre ayrılır ve o hücreye 33 sayısı ikilik (binary) sayı sitemindeki karşılığı olan 4 baytlık (32 bitlik) karşılığı aşağıdaki gibi yazılır.
    00000000 00000000 00000000 00100001


Örnek:
    int tam = 33;




Bellek adresleri genellikle onaltılık (hexadecimal) sayı sisteminde ifade edilir.
0x3fffd14 sayısı onluk (decimal) sayı sisteminde 67108116 sayına karşılık gelir. Bunun anlamı, tam değişkeni, program çalıştığı sürece, bellekte 67108116. - 67108120. numaralı gözler arasındaki 4 baytlık hücreyi işgal edecek olmasıdır.







tam adlı değişkenin bellekteki gerçek konumu ve ikilik düzendeki içeriği aşağıdaki gibidir:







Değişkenin saklı olduğu adres, & karakteri ile tanımlı adres operatörü ile öğrenilebilir.
Bu operatör bir değişkenin önüne konursa, o değişkenin içeriği ile değil adresi ile ilgileniliyor anlamına gelir.








Birlikler (Union)


Birlikler de yapılar gibi sürekli belleğe yerleşen nesnelerdir.
Birlikler yapılara göre daha az kullanılırlar. Bir programda veya fonksiyonda değişkenlerin aynı bellek alanını paylaşması için ortaklık bildirimi union deyimi ile yapılır. Bu yer, birliğin en büyük alanı kadardır.
Bu da belleğin daha verimli kullanılmasına imkan verir.
Bu tipte bildirim yapılırken struct yerine union yazılır.


Örnek:

union test
{
      int x;
      char y[10];
} p

Bu tanıma göre x tamsayısı için bellekte 4 baytlık yer ayrılmaktadır.
Birlik içinde yer alan y değişkeni için 10 baytlık yer ayrılmıştır.
Bu durumda, birlik için en fazla 10 baytlık bir yer ayrılmıştır. Ayrılan bu alan, birliğin her bir alanı tarafından ortak kullanılır.

typedef Kullanımı

typedef deyimi C dilinde değişken tanımlama yaparken kullanılan int, float, char gibi değişken isimlerini değiştirmeye yarar.
Bu sayede kodlar programcının anadiline daha fazla yaklaşmış olur.
struct deyimi ile beraber kullanıldığında oluşturduğunuz yapıyı bir değişken türü olarak tanımlayıp o yapının çoğaltılmasını sağlar. Bu yapıdan değişken tanımlamak için tekrar struct deyiminin kullanılmasına gerek kalmaz.


Örnek: typedef Kullanımı

struct içerisinde struct Kullanımı

C programlama dili struct içerisindeki bir üyenin yine bir struct olmasına izin verir. Bunu yapmaktaki temel amaç:
Kaynak kodun tekrar kullanılabilirliğini arttırmak
Kaynak kodun okunabilirliğini arttırmak
Kaynak kodu sadeleştirmek

Örnek: struct içerisinde struct Kullanımı


struct (Yapı) Deyimi





Yapılar, farklı veri türlerine sahip değişkenlerin bir grup olarak değerlendirilmesi ve bu grubun bir isimle kullanılması amacıyla tercih edilen kullanıcı tanımlı bir veri türüdür.
Yapılar diziler gibi bellekte sürekli kalır.
Bir yapı içerisindeki elemanlara üye (member) denir.
Üyelerin her biri farklı veri tipine sahip olabilir.
Yapılar sayesinde kendi veri tipinizi üretmeniz mümkündür.
Yapılar farklı programlama dillerinde Record (Kayıt) olarak da geçerler.

Yapılar int, float, char gibi farklı tipteki değişkenleri veya aynı türdeki birden çok değişkeni bir araya getirmeyi sağlar. Nesne tabanlı programlamanın da temelini oluşturan bu oluşumu iyi öğrenmek, ileriki zamanlarda C# ve JAVA gibi tamamen nesneye dayalı programlamayı benimsemiş gelişmiş dilleri öğrenmeye de yardımcı olacaktır.


Yapı gösterimi aşağıdaki gibidir:

struct yapı_adı{
    veri_tipi yapı_değişken_ismi;
     veri_tipi yapı_değişken_ismi;
         ...
       };

Örnek: Bir üniversitedeki öğrencilerin bilgilerini struct kullanarak ifade edelim.
Kullanılacak bilgiler aşağıdaki gibi olsun:
Öğrenci Numarası
Öğrenci Adı
Öğrenci Soyadı
Öğrenci Cinsiyeti
Öğrenci Fakültesi/Bölümü
Öğrenci  Genel Not Ortalaması






Örnek: struct Okuma ve Yazma







struct Değişkenlerini Kopyalama

struct tipindeki bir değişkenin değeri aynı tipteki bir başka struct değişkenine atanabilir.
Atama aşağıdaki şekilde yapılır:

    degisken1 = degisken2;

Örnek: struct Kopyalama





struct Değişkenlerini Karşılaştırma




struct tipindeki bir değişken aynı tipteki bir başka struct değişkeni ile direk karşılaştırılamaz. Ancak sahip olduğu üyelerinin tamamı diğeri ile karşılaştırılır.
Aşağıdaki karşılaştırma yanlıştır:

    if (degisken1 == degisken2) ….

Örnek: struct Değişkenlerini Karşılaştırma

Genellikle yapı değişkeni veya nesne karşılaştırmalarında tek tek üyeleri veya özellikleri karşılaştırmaya gerek yoktur. Çünkü o değişkeni diğer değişkenlerden ayırt edecek benzersiz bir üye mutlaka bulunmaktadır. 





struct Değişkenleri ve Fonksiyonlar

struct tipindeki bir değişken herhangi bir fonksiyona parametre olarak aktarılabilir.
Herhangi bir fonksiyon geri dönüş değeri olarak struct tipinde bir veri türü geriye dönebilir.

Örnek: struct ve Fonksiyonlar









struct Değişkenleri ve Diziler

struct tipi içerisinde dizi türünde üyeler tanımlamak mümkündür.
Dizileri struct tipinde tanımlamak mümkündür.

Örnek: struct Değişkenleri ve Diziler









Örnek: struct Değişkenleri ve Diziler






Yapılar ve Birlikler (enum Deyimi)


enum Deyimi / Sayma Sabitleri (Enumeration Constants)
struct Deyimi / Yapı (Structures)
typedef Deyimi
union Deyimi / Birlik


enum Deyimi

Sayma tipi olarak adlandırılırlar.
Bir sayma tipi, enum anahtar kelimesiyle tanıtılır ve tanıtıcılar ile temsil edilen tamsayı sabitlerinin kümesidir.
Bu sayma sabitleri, değerleri otomatik olarak belirlenen sembolik sabitlerdir.
enum içindeki değerler aksi belirtilmedikçe 0 ile başlar ve 1 arttırılır.
Bu tip, değişkenin alabileceği değerlerin sabit olduğu durumlarda programı daha okunabilir hale getirmek için kullanılır.


Mantıksal örnekler:
Cinsiyet: Kadın, Erkek
Calisma_Durumu: İssiz, Calisan, Ögrenci, Emekli
Evlilik_Durumu: Evli, Bekar
Egitim_Durumu: İlkokul, Lise, OnLisans, Lisans, LisansUstu

Genel yazım biçimi:
enum tip_adı{değer_1, değer_2, ..., değer_n} değişken_adı;


Örnek:
       enum bolumler {programcilik, donanim, muhasebe, motor};

Tanımı ile derleyici
programcilik için 0,
donanim için 1,
muhasebe için 2 ve
motor için 3 değerini
kabul ederek atamaları buna göre yapar.








Alıştırma: enum Oluşturma

Aşağıdaki bilgileirn enum tiplerini oluşturunuz:
Cinsiyet: Kadın, Erkek
Calisma_Durumu: İssiz, Calisan, Ögrenci, Emekli
Evlilik_Durumu: Evli, Bekar
Egitim_Durumu: İlkokul, Lise, OnLisans, Lisans, LisansUstu

HTML-5 ile ilgili yardımcı web adresleri

http://openhtml5games.com/
http://www.html5quintus.com/
http://codecanyon.net/category/html5/games
http://blog.lessmilk.com/how-to-make-flappy-bird-in-html5-1/
http://www.html5gamedevelopment.com/html5-game-tutorials
http://www.playmycode.com/
http://cssdeck.com/labs/classic-snake-game-with-html5-canvas

Php Kodları

Php Define

<!DOCTYPE html> <html> <body> <?php define("GREETING", «hELLO!"); function myTest() {      echo GREETING; }   myTest(); ?>  </body> </html>


Php If

<!DOCTYPE html> <html> <body> <?php $t = date("H"); echo "<p>The hour (of the server) is " . $t; echo ", and will give the following message:</p>"; if ($t <  "10") {      echo "Have a good morning!"; } elseif ($t <  "20") {      echo "Have a good day!"; } else {      echo "Have a good night!"; } ?>   </body> </html>


Php Switch



<!DOCTYPE html> <html> <body> <?php $favcolor = "red"; switch ($favcolor) {      case "red":          echo "Your favorite color is red!";          break;      case "blue":          echo "Your favorite color is blue!";          break;      case "green":          echo "Your favorite color is green!";          break;      default:          echo "Your favorite color is neither red, blue, or green!"; } ?>   </body> </html>


Php While do While


<!DOCTYPE html> <html> <body> <?php $x = 1;   while($x <= 5) {    echo "The number is: $x <br>";    $x++; } ?>   </body> </html>


<!DOCTYPE html> <html> <body> <?php $x = 1; do {      echo "The number is: $x <br>";      $x++; } while ($x <= 5); ?> </body> </html>

Php For ve ForEach


<!DOCTYPE html> <html> <body> <?php for ($x = 0; $x <= 10; $x++) {    echo "The number is: $x <br>"; } ?>   </body> </html>


<!DOCTYPE html> <html> <body> <?php $colors = array("red", "green", "blue", "yellow"); foreach ($colors as $value) {    echo "$value <br>"; } ?>   </body> </html>


Php Fonksiyon

<!DOCTYPE html> <html> <body> <?php function sum($x, $y) {      $z = $x + $y;      return $z; } echo "5 + 10 = " . sum(5,10) . "<br>"; echo "7 + 13 = " . sum(7,13) . "<br>"; echo "2 + 4 = " . sum(2,4); ?> </body> </html>

<!DOCTYPE html> <html> <body> <?php function familyName($fname, $year) {      echo "$fname Refsnes. Born in $year <br>"; } familyName("Hege","1975"); familyName("Stale","1978"); familyName("Kai Jim","1983"); ?> </body> </html>

Php Dizler

<!DOCTYPE html> <html> <body> <?php $cars = array("Volvo", "BMW", "Toyota"); echo "I like " . $cars[0] . ", " . $cars[1] . " and " . $cars[2] . "."; ?> </body> </html>

<!DOCTYPE html> <html> <body> <?php $cars = array("Volvo", "BMW", "Toyota"); $arrlength = count($cars); for($x = 0; $x <  $arrlength; $x++) {      echo $cars[$x];      echo "<br>"; } ?> </body> </html>


Php Hazır Fonksiyonlar



<!DOCTYPE html> <html> <body> <?php $cars = array("Volvo", "BMW", "Toyota"); sort($cars); $clength = count($cars); for($x = 0; $x <  $clength; $x++) {      echo $cars[$x];      echo "<br>"; } ?> </body> </html>


<!DOCTYPE html> <html> <body> <?php $numbers = array(4, 6, 2, 22, 11); rsort($numbers); $arrlength = count($numbers); for($x = 0; $x <  $arrlength; $x++) {      echo $numbers[$x];      echo "<br>"; } ?> </body> </html>

Php Super Global


<!DOCTYPE html> <html> <body> <?php echo $_SERVER['PHP_SELF']; echo "<br>"; echo $_SERVER['SERVER_NAME']; echo "<br>"; echo $_SERVER['HTTP_HOST']; echo "<br>"; echo $_SERVER['HTTP_REFERER']; echo "<br>"; echo $_SERVER['HTTP_USER_AGENT']; echo "<br>"; echo $_SERVER['SCRIPT_NAME']; ?> </body> </html>


Php Dosya Yazma


<!DOCTYPE html> <html> <body> <?php $myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!"); echo fread($myfile,filesize("webdictionary.txt")); fclose($myfile); ?> </body> </html>


Diğer Php Konuları…


PHP Advanced
PHP Arrays Multi
PHP Date and Time
PHP Include
PHP File Handling
PHP File Open/Read
PHP File Create/Write
PHP File Upload
PHP Cookies
PHP Sessions
PHP Filters
PHP Filters Advanced
PHP Error Handling
PHP Exception
PHP - XML
PHP XML Parsers
PHP SimpleXML Parser
PHP SimpleXML - Get
PHP XML Expat
PHP XML DOM

PHP - AJAX
AJAX Intro
AJAX PHP
AJAX Database
AJAX XML
AJAX Live Search
AJAX RSS Reader
AJAX Poll

PHP Examples
PHP Examples
PHP Quiz
PHP Certificate
PHP Reference
PHP Array
PHP Calendar
PHP Date
PHP Directory
PHP Error
PHP Filesystem
PHP Filter
PHP FTP
PHP HTTP
PHP Libxml
PHP Mail
PHP Math
PHP Misc
PHP MySQLi
PHP SimpleXML
PHP String
PHP XML
PHP Zip
PHP Timezones

Php Giriş

PHP nin kısaltması "PHP: Hypertext Preprocessor» dür. PHP: Hiper Metin Ön işlemcisi'dir. Kısaltmanın ilk harfinin kısaltmanın kısaltması olması çoğu kişiyi şaşırtmaktadır. Bu tür kısaltmalara iç içe kısaltmalar adı verilmektedir.
PHP yaygın olarak kullanılan, açık kaynak kodlu betik bir dildir.
PHP scriptsleri (betikleri) sunucu üzerinde çalışır.
PHP indirmek ve kullanmak ücretsizdir.

PHP, HTML içine gömülebilen bir betik dilidir. Sözdiziminin çoğunu C, Java ve Perl'den almış ve bunun üzerine PHP'ye özgü bir sürü eşsiz özellik eklenmiştir. Dilin amacı site geliştirenlere hızla üretilen web sayfaları yazabilme imkanı vermektir.
PHP kodu sunucu üzerinde çalışır ve sonuçlar HTML’e döndürülür.
PHP dosyaları uzantısı ".php« dir.

PHP, Web tabanlı yazılımları geliştirmek için tasarlanmış bir programlama dilidir.

Çalışma mantığı diğer web tabanlı programlama dilleri gibidir (sunucu taraflı).







HTML dosyaları içine yazılarak kullanılabilir.

<html>
    <head>
        <title>Örnek</title>
    </head>
    <body>
    <?php
    echo “Örnek PHP betiği...”;
    ?>
    </body>
</html>


Tarayıcı Çıktısı:

Örnek PHP betiği...


PHP’nin Tarihi

Rasmus Lerdorf tarafından yazıldı.
Kendi web sitesine bağlı olan kişilerin takibini yapmak
amaçlı kullandı.
Kaynak kodunu 1995 senesi içinde yayınladı.
Aralık 2002  tarihinde bile 10.000.000’dan fazla web
sunucusu üzerinde PHP  çalışmaktaydı.


PHP ile Neler Yapılabilir?

Veritabanı bağlantılı uygulamalar
Dinamik olarak oluşan grafikler, Flash animasyonları
Ziyaretçiye, tarayıcıya veya tarihe göre özel durumlar veya
içerikler
Anketler
Tartışma forumları
Elektronik ticaret uygulamaları


Php ile Neler Yapılabilir?

PHP ile dinamik sayfa içerikleri üretebilir.
PHP ile dosya okuma  açma ve dosya oluşturma işlemleri  yapabilirsiniz.
PHP form verilerini toplamak için kullanılabilir.
PHP ile cookie denilen dosyalar oluşturulabilir.
PHP ile veri tabanına bağlanılıp veri tabanındaki dosyaları, silme, ekleme değiştirme işlemleri yapılabilir.
PHP ile kullanıcı erişimi ve kullanıcı kontrol işlemleri yapılabilir.

Php ile Neler Yapılabilir

PHP ile verileri şifreleyebilirsiniz.
PHP ile sadece HTML şeklinde dosya oluşturma değil. Çıktı görüntüleri, PDF dosyaları ve hatta Flash filmleri yapabilirsiniz. Ayrıca Php ile XHTML ve XML gibi metin dosyalarıda oluşturabilirsiniz.

Php’nin Bazı Avantajları

Neden PHP? PHP çeşitli platformlar (Windows, Linux, Unix, Mac OS X, vb) üzerinde çalışabilir.
PHP günümüzde kullanılan hemen hemen tüm sunucular ile uyumludur (Apache, IIS, vb)
PHP veritabanları geniş bir yelpazede destekler.
PHP ücretsizdir. Resmi PHP kaynağından indirilebilir: www.php.net
PHP öğrenmek kolaydır ve sunucu tarafında verimli bir şekilde çalışır.

Php 5 Yükleme

PHP kullanmaya başlamak için neye ihtiyacınız var?
PHP ve MySQL desteği olan bir web servera
Kendi Bilgisayarıma yükleyebilirmiyim?
PHP ve MySQL’i kendi bilgisayarımıza yükleyebiliriz.
Ondan sonra ne yapmam gerekiyor?
.php dosyaları oluşturmak ve bu dosyaları  web dizininde koymak yeterli. Sunucu bu dosyaları otomatik olarak derleyip çalıştıracaktır ve herhangi bir ekstra derleme veya yüklemeniz gerekmez.


Php Yükleme Devam


PHP ücretsiz olduğundan, çoğu web host PHP desteği sunmaktadır. Kendi PC'de PHP Sunucusu kurabilirsiniz.
Eğer sunucu PHP desteklemiyorsa, şunları yapmanız gerekir:
Bir web sunucusu yüklemek
PHP desteği ve MySQL gibi bir veritabanı yüklemek
Resmi PHP Web sitesi (PHP.net) PHP için kurulum talimatları vardır: http://php.net/manual/en/install.php


Php Yazım Kuralları

Temel PHP sözdizimi Bir PHP komut dosyası belgede herhangi bir yere yerleştirilebilir. Bir PHP komut dosyası ile başlar <? Php ve biter?>: <? php // PHP kodu buraya ?> PHP dosyaları için varsayılan dosya uzantısı ".php" dir. Bir PHP dosyası normal HTML etiketlerini ve bazı PHP betik kodlarını içerir. Aşağıda, çıktı metni yerleşik PHP işlevi "echo" kullanan bir PHP script ile basit bir PHP dosyası bir örnek var "Merhaba Dünya!" Bir web sayfasında:
<!DOCTYPE html> <html> <body> <h1>My first PHP page</h1> <?php echo "Hello World!"; ?> </body> </html>

Php Yazım Kuralları


<!DOCTYPE html> <html> <body>   <?php // This is a single-line comment # This is also a single-line comment /* This is a multiple-lines comment block that spans over multiple lines */ // You can also use comments to leave out parts of a code line $x = 5 /* + 15 */ + 5; echo $x; ?>  </body> </html>

Php Büyük Küçük Harf Duyarlılığı

PHP, tüm anahtar kelimeleri (örneğin eğer başka, süre, eko, vb), sınıflar, fonksiyonlar ve kullanıcı tanımlı fonksiyonlar harf duyarlı DEĞİLDİR.
<!DOCTYPE html> <html> <body> <?php ECHO "Hello World!<br>"; echo "Hello World!<br>"; EcHo "Hello World!<br>"; ?>  </body> </html>

Php Değişken Büyük Küçük Harf Duyarlılığı


Bununla birlikte; Tüm değişken adları küçük harf duyarlıdır. Aşağıdaki örnekte, yalnızca ilk ifadesi $ renk değişkenin değerini (bu $ renk, $ RENK ve $ renK üç farklı değişkenler olarak kabul edilir)
<!DOCTYPE html> <html> <body> <?php $color = "red"; echo "My car is " . $color . "<br>"; echo "My house is " . $COLOR . "<br>"; echo "My boat is " . $coLOR . "<br>"; ?>  </body> </html>


Php Değişkenler

<!DOCTYPE html> <html> <body> <?php $txt = "Hello world!"; $x = 5; $y = 10.5; echo $txt; echo "<br>"; echo $x; echo "<br>"; echo $y; ?> </body> </html>


Php Değişken tanımlama

PHP Değişkenler;
Bir değişken (x ve y gibi) kısa adı veya daha açıklayıcı bir ad (yaş, ARABAADI, total_volume) olabilir.
PHP değişkenleri için kurallar:
Bir değişken, değişken adınından önce $ işareti ile başlar.
Bir değişken adı bir harf ya da alt çizgi karakteri ile başlamalıdır
Bir değişken adı bir sayı ile başlayamaz
Bir değişken adı yalnızca alfa-sayısal karakterler ve alt (Az, 0-9, ve _) içerebilir.
Değişken adları küçük harf duyarlıdır ($ age ve $ AGE iki farklı değişkendir.)



Php Değişken Örnekleri

<!DOCTYPE html> <html> <body> <?php $txt = “Php"; echo "I love $txt!"; ?> </body> </html>

<!DOCTYPE html>
<html> <body> <?php $x = 5; $y = 4; echo $x + $y; ?> </body> </html>


<!DOCTYPE html> <html> <body> <?php $txt = “Php"; echo "I love " . $txt . "!"; ?> </body> </html>

Değişkenler ve Kullanımları

<!DOCTYPE html> <html> <body> <?php $x = 5; // global scope  function myTest() {      // using x inside this function will generate an error      echo "<p>Variable x inside function is: $x</p>"; } myTest(); echo "<p>Variable x outside function is: $x</p>"; ?> </body> </html>

Variable x inside function is:
Variable x outside function is: 5

Değişkenler ve Kullanımları


<!DOCTYPE html> <html> <body> <?php function myTest() {      $x = 5; // local scope      echo "<p>Variable x inside function is: $x</p>"; } myTest(); // using x outside the function will generate an error echo "<p>Variable x outside function is: $x</p>"; ?> </body> </html>

Variable x inside function is: 5
Variable x outside function is:


<!DOCTYPE html> <html> <body> <?php $x = 5; $y = 10; function myTest() {      global $x, $y;      $y = $x + $y; } myTest(); // run function echo $y; // output the new value for variable $y ?> </body> </html>


Global Değişkenlerin fonksiyon içerisinde kullanımı


Php Echo ve Print


<!DOCTYPE html> <html> <body> <?php echo "<h2>PHP is Fun!</h2>"; echo "Hello world!<br>"; echo "I'm about to learn PHP!<br>"; echo "This ", "string ", "was ", "made ", "with multiple parameters."; ?>  </body> </html>


Php’de ekran çıktısı almak için kullanılan en kolay 2 yöntem.

Php Echo ve Print

<!DOCTYPE html> <html> <body> <?php $txt1 = "Learn PHP"; $txt2 = "enter.com"; $x = 5; $y = 4; echo "<h2>" . $txt1 . "</h2>"; echo "Study PHP at " . $txt2 . "<br>"; echo $x + $y; ?> </body> </html>


Php Echo ve Print


<!DOCTYPE html> <html> <body> <?php print "<h2>PHP is Fun!</h2>"; print "Hello world!<br>"; print "I'm about to learn PHP!"; ?>  </body> </html>


Php Echo ve Print

<!DOCTYPE html> <html> <body> <?php print "<h2>PHP is Fun!</h2>"; print "Hello world!<br>"; print "I'm about to learn PHP!"; ?>  </body> </html>


<!DOCTYPE html> <html> <body> <?php $txt1 = "Learn PHP"; $txt2 = “www.php.com"; $x = 5; $y = 4; print "<h2>" . $txt1 . "</h2>"; print "Study PHP at " . $txt2 . "<br>"; print $x + $y; ?> </body> </html>


Php Veri Tipleri


Php aşağıdaki veri tiplerini destekler;
    Integer
    String
    Float (floating point numbers - also called double)
    Boolean
    Array
    Object
    NULL
    Resource

<!DOCTYPE html> <html> <body> <?php $x = 5985; var_dump($x); ?>   </body> </html>

Php veri tipi öğrenme

<!DOCTYPE html> <html> <body> <?php $cars = array("Volvo","BMW","Toyota"); var_dump($cars); ?>   </body> </html>


<!DOCTYPE html> <html> <body> <?php $x = "Hello world!"; $x = null; var_dump($x); ?> </body> </html>

Php Class

<!DOCTYPE html> <html> <body> <?php class Car {      function Car() {          $this->model = "VW";      } } // create an object $herbie = new Car(); // show object properties echo $herbie->model; ?> </body> </html>


Php Hazır String Fonksiyonlar


String Uzunluğu
<!DOCTYPE html> <html> <body> <?php echo strlen("Hello world!"); ?>   </body> </html>
Kelime Sayısı
<!DOCTYPE html> <html> <body> <?php echo str_word_count("Hello world!"); ?>    </body> </html>


Tersten Yaz
<!DOCTYPE html> <html> <body> <?php echo strrev("Hello world!"); ?>    </body> </html>
Kelime Arama
<?php echo strpos("Hello world!", "world"); // outputs 6 ?>
Kelime Değiştirme
<?php echo str_replace("world", "Dolly", "Hello world!"); // outputs Hello Dolly! ?>


String Uzunluğu

<!DOCTYPE html> <html> <body> <?php echo strlen("Hello world!"); ?>   </body> </html>
Kelime Sayısı
<!DOCTYPE html> <html> <body> <?php echo str_word_count("Hello world!"); ?>    </body> </html>

Tersten Yaz
<!DOCTYPE html> <html> <body> <?php echo strrev("Hello world!"); ?>    </body> </html>
Kelime Arama
<?php echo strpos("Hello world!", "world"); // outputs 6 ?>
Kelime Değiştirme
<?php echo str_replace("world", "Dolly", "Hello world!"); // outputs Hello Dolly! ?>

Web Tabanlı Ürün

Tercihler

Windows Uygulamaları
Web Uygulamaları

Teknoloji (1)


Web Programları

  • ASP/Aspx (Mvc)
  • PHP
  • CGI
  • PERL
Veri Tabanları
  • MS SQL Server
  • Oracle
  • DB2
Tasarım
  • Css
  • Flash

Bilgisayar Ağları, Donanım ve Gerekli Yazılımlar

  • Switch
  • Firewall
  • Router
  • KablolamaIIS / Apache
  • Server


Web Pazarlama Nedir?


Web pazarlama mal ve hizmetlerin varolan ve geleceğin müşterilerine web tabanlı araçlar yolu ile tanıtılması işlemidir. Bu satış, reklam yeni ürün pazar araştırması ve müşteri hizmetlerini içerir.



Web Pazarlama Stratejisi

Toplam 4 adımdan oluşur.
  • Bul
  • Cezbet
  • Kazan
  • Koru


Nerelerde Kullanmalıyım?




 Web pazarlamayı varolan pazar etkinliklerinizi desteklemek için kullanabilirsiniz.

Web Pazarında Yapılmaması Gereken Hatalar

Hedef kesim, vizyon ve misyon belirlemede yetersizlik.
Yanlış ürün seçimi
Fiyat ve hizmetlerde hatalar
Hatalı teknoloji ki bu özellikle Türk web sitelerinde çok rastlanan bir sorun. Yavaş yada tam açılmayan siteler, sipariş prosedürlerinin çok karmaşık olması ve bir yerde olan logonun başka birçok yere linklenmesiyle sitenin zengin gösterilmesi adına yaratılmış olan, ve hedef kitleyi soğutan içerik vb.
Müşteri hizmetlerinde yavaş ve/veya kötü uygulamalar, hedef kitlenin iyi tanımlanmaması sonucu oluşan sanal empati yoksunluğu.


Web Tabanlı Ürünlerin Avantajları(1)

Müşteri Potansiyeli Arttırma
Daha iyi nitelikli müşteriye ulaşma
İletişim olanaklarını geliştirme
Yeni ürün ve imkanları sunma
Varolan pazar etkinliklerinizi desteklemek için kullanabilirsiniz.
Arz ve talebin hızlı ve sağlam bir şekilde koordinasyonunu sağlar.
Alıcılara düşük maliyet ve çok seçenek sunar
Normal şartlar altında hayal edilemeyecek çeşit ve çoklukta ürün ve hizmet sunar.


İnternetin sağladığı olanaklar sayesinde


Her kez ile aynı noktadan erişim imkanları

Reklam
Müşteri bağlılığı
Diyalog
Ürün tanıtımı

Müşteri Bilgi Toplama Araçlar


E-posta ve liste yönetimi
Online Reklam
Elektronik Bültenler
Web sitesi


E-posta
Müşterilerinize kişiselleştirilmiş ve onlara uygun pazarlama mesajlarını e-posta ile gönderin. Mesajlar belki müşterilerin tercihleri, alım geçmişi ve göz atma alışkanlıklarına göre uyarlanmış olabilir. Bu mesajlar basit bir "sipariş verdiğiniz için teşekkür ederiz" den, özel hedeflenmiş öneriler içeren yeni bir ürün ve hizmet duyurusuna kadar değişiklik gösterebilir. Ancak müşteri mahremiyeti konusunda özenli olun ve onların sizin e-posta kampanyanıza katılımını veya çıkışını kolay tutacak bir form seçin.
Online reklam
Etkileşimli büyük başlıklı reklamlar online reklamda en sık kullanılan biçimdir. Online reklamlar trafiği sizin sitenize yönlendirir ve sizin kendinize özgü online markanızı geliştirir.
Elektronik bültenler
Bu dijital yayınlar abone olanlara e-posta ile gönderilirler ve içlerinde renkli grafikler ve fotoğraflar olabilir. Bilgiyi, özel müşterileriniz veya ortak iş yaptığınız gruplar için ürün ve hizmetlerinize dair ipucu bölümünü ekleyerek özelleştirebilirsiniz. Sizin web sitesine doğrudan bağlantısı olan bültenleri e-posta ile göndermek ile marka farkındalığı ve satışları arttırırken, güncellenme ve yeniden basma gibi ek maliyetleri olan broşür basmak gereksinimini ortadan kaldırırsınız. Ancak online görgü kurallarını takip ettiğinizden emin olun ve alıcılara üyelikten çıkış veya "ayrılma seçeneği " olanaklarını kolaylıkla verin.
Bağlılık, referans ve üyelik programları
Bu programlar sadık ya da sıkça muhatap olduğunuz müşterilere ödüller sunar. İndirim verme veya hediye sertifikası gibi sitenize bağlanan yeni müşteriler veya diğer sitelerle olan üyelikler için verilen ödüller, sizin hedef müşteri kitlenizi ilgilendirebilir ve onları web sitenize yönlendirebilir .


Web sitesi
Bir Web sitesi sizin şirketinize açılan sanal bir pencere gibidir. Tipik bir şirket sitesi ürün ve hizmetleriniz hakkındaki birkaç "sayfanın" toplamından müşterilerin ürün ve hizmetleri satın alırken sizin müşterilerin ilgileri ve alışveriş alışkanlıkları hakkında bilgi toplayacağınız bir tedarik kanalına dönüştürülebilir. Web sitenizin bir pazarlama aracı olarak temel faydaları müşteri etkileşiminin site ile ölçülebilmesi ve ziyaretçilerin ilgisine göre iletişimi özelleştirebilir hale getirebilmesidir. Web sitesi birçok web pazarlama etkinliğinin esas merkezi görevini görür. Web sitesi gelişimi sitenizin tasarım, başlatma, sürdürebilme ve genişletme işlemidir. Web sitesi geliştirme çözümleri size bir web sitesi için planlama, yaratma ve geliştirme araçlarını sunar.

Satış Taktikleri

Birbiriyle bağlantılı ürünler seçilerek müşteri tarafından bir ürün istendiğinde o ürüne benzer özellikteki ürünleri listeleme
Bu ürünü alanlar bunları da aldılar
Özel günler için kampanyalar
Sipariş çeşitliliği (cep telefonu)
En çok satılanlar en çok bakılanlar


Örnekler
Web pazarlama pazarınızı genişletebilir, müşteri hizmet giderlerini azaltabilir ve müşterilerinizle yeni iletişim olanakları da yaratabilir: İşte yaşanmış başarılı örnekler


Örnek 1 : Pazarınızı Genişletme
Bir web sitesi ve web pazarlama kampanyası coğrafik satışlarınızı ve başka araçlar kullanırken ulaşmanız mümkün olmayan açık pazarlara ulaşmanızı sağlar. Ayni zamanda şirketinizin markasını daha önce reklam yapamadığınız veya fiziksel.varlığının olmadığı alanlara da ulaştırmanıza olanak sağlar
(Hediyelik Eşya)

Örnek 2 : Müşteri Hizmet Maliyetlerini Azaltmak:
Bir web sitesi müşteri hizmet maliyetlerinin online müşteri hizmet temsilcileri ile müşteriler alım kararlarını verirken onlarla online iletişime girerek müşterilere ürün bilgisi ile fiyatlar hakkında geri bildirimde bulunabilmesi yolu ile azalmasına katkıda bulunur.
(Çay Kahve Makinesi)

Örnek 3 : Müşterilerinizle Yeni İletişim Kanalı Açmak:
Web pazarlama etkinlikleri sizin online cemaatinize bilgi akışını geliştirir. Web siteniz ve web pazarlama materyaliniz aracılığı ile e-posta ile gönderilen bültenler gibi ürünler, hizmetler ve özel promosyonlar hakkında müşterilerinize zamanında bilgi aktarabilirsiniz.
(Su altı malzemeleri)





Web Sitesi

Web sitesi

Bir Web sitesi sizin şirketinize açılan sanal bir pencere gibidir. Tipik bir şirket sitesi ürün ve hizmetleriniz hakkındaki birkaç "sayfanın" toplamından müşterilerin ürün ve hizmetleri satın alırken sizin müşterilerin ilgileri ve alışveriş alışkanlıkları hakkında bilgi toplayacağınız bir tedarik kanalına dönüştürülebilir. Web sitenizin bir pazarlama aracı olarak temel faydaları müşteri etkileşiminin site ile ölçülebilmesi ve ziyaretçilerin ilgisine göre iletişimi özelleştirebilir hale getirebilmesidir. Web sitesi birçok web pazarlama etkinliğinin esas merkezi görevini görür. Web sitesi gelişimi sitenizin tasarım, başlatma, sürdürebilme ve genişletme işlemidir. Web sitesi geliştirme çözümleri size bir web sitesi için planlama, yaratma ve geliştirme araçlarını sunar.

NEDEN BİR WEB SİTEM OLMALI?


   Yanlış Düşünce

X  Olmadanda oluyor!
X  Bir sürü masraf!
X  Bizim çocuk arkadaşlarıyla halleder!!!


Doğru Düşünce

Küresel çapta erişilebilirlik
Hayal edemiyeceğiniz sayıda potansiyel müşteri
Ucuz hammadde kaynaklarına tedarikcilere erişim ve onların size erişmesi


Ya İnternetten sipariş yapmayacaksam yinede gerekir mi !


Öte yandan internet üzerinden iş yapmayacak, sipariş almayacak, müşteri bulmayacak bile olsanız bir internet sitesine yine de ihtiyacınız olacaktır. İnternet sayfasının, varolan müşterilerinizin size olan güvenini pekiştireceğini unutmayın.


Hangisi Daha Güvenilir ?


İnternet sitesi olan mı
İnternet sitesi olmayan mı

FİRMANIZIN İNTERNETTE YER ALMAMASI İÇİN NEDENLERİNİZ Mİ VAR?


Rakip firmalarım bilgilerimi çalarsa?
Ürünlerim ve servislerim internetten satılmaz
Tanınmak bu kadar önemli mi?
Firmam çok küçük bence gerek yok!
Aradığım müşterileri ve tedarikcileri bulabilecekmiyim?
Rakiplerim internette yok ben niye olayım?


WEB SİTESİ KURARKEN NELERE DİKKAT ETMELİ (1)?


Hedef kitlenizi belirleyin
Amacınızı misyonunuzu hedeflerinizi kısacası kendinizi tanıtın.
Web sitesi olsun diye değil gerçekten bir web sitesi olsun diyerek sitenizi kurun
Güncellemeleri ana sayfadan yayınlayın
Büyük resimlerden kaçının
Siteye mid 5kb üzerinde ses dosyası yüklemekten kaçının
Sayfaya hoş geldiniz gibi cıngılları abartmayın
Java apletler çok gerekli değilse kullanmayın
Fontların renkleri ile yazıların renkleri birbirine yakın olmamalı
Yazıların fontları göz yormamalı yazı fontlarında Ariel tohoma veya verdana kullanılmalı Times New Roman dan kaçınılmalı
Sitenin dil desteği olmalı mümkünse sadece tanıtım değil bütün sayfaların birer dil desteğibulunmalı
Sitenin boyutu 100kb ın üzerine çıkmamalı
Mümkünse sitenin ana özelliklerini içeren bir flash sitesi hazırlanmalı (band genişliği yüksek olanlar için)

Reklamlarda Neye Dikkat Edilmeli ?


Fazla Reklamlardan kaçının
Sponsor firmaların sayfasına gitmeye zorlayın
Sitede olmayan olayları var gibi göstermeyin
Armama motorlarına kayıt yaparken sececeğinin kelimelerin sizin misyonunuzla bağdaştıp bağdaşmadığına özen gösterin
En iyi reklam müşterinin aradığı bilgiye ulaşınca sağladı mutluluk olacaktır.


Web Sitesi Tercihleri

1-)İnteraktif olmayan, düz HTML sayfaları,
2-)İnteraktif olmayan, hareketli (Flash, Animated GIF, vb.) HTML sayfaları,
3-)İnteraktif (sisteme zahmetsizce yönetici girişi yapılıp içeriği browser'dan güncellenebilen), düz veya hareketli ASPx sayfaları
4-)Tanıtım, satış, sipariş, teklif sistemlerini içeren ASPx tabanlı İnteraktif.

İsteklerinize bağlı olarak istenilen her türlü web tabanlı veritabanı uygulamaları yazıp, istenildiinde bu uygulamaları web sitenizle entegre etmekteyiz.


Tasarım ve İçerik... Hangsi Daha Önemli?


Tasarım ne kadar güzel olursa olsun, içeriği zayıf olan bir site hiç bir zaman başarılı olamaz. Oysa içeriği zengin olan bir site, tasarımı kötü de olsa başarılı olabilir.
Çok fazla konuya girip içeriği karıştırmayın
Farklılığa önem verin


Tasarım ajansının maliyetleri gereksiz yere arttırmaması için nelere dikkat etmeli ?

Profesyonel firma tercihi
Kobi’lere göre hazırlanmış özel içerikli ürünlerinin olup olmadığını sorun(fiyat avantajı)


BİR WEB SİTESİNDE OLMAZSA OLMAZLAR NELER?


Alan adı (domain name)
www.firma-ismi.com.tr 40 TL
www.firma-ismi.com 15 $
Yayınlama Alanı (hosting)  30$
Posta, telefon, faks ve e-posta adreslerine mutlaka yer vermelisiniz
Ürün ve hizmetleriniz ile ilgili olabildiğince detaylı bilgilerin yer aldığı bir sayfa ayırmalısınız
Referanslarınızı ve mümkünse, refere ettiğiniz insanların sizinle ilgili görüşlerine yer vermenizde fayda olacaktır.


Örnek Bir Web Sitesi Oluşturulması 1 (Firma Dışı)


Müşterinin satıcı veya Satıcınım Müşteri bulma kısmı
Firmaya genel isterlerin verilmesi
Tasarımın Oluşturulması
Kodlama Kısmı
Entegrasyon , Test Kısmı
Ürün Teslimi
Bakım Anlaşması


Örnek Bir Web Sitesi Oluşturulması 2 (Frima İçi)

İsterlerin Belirlenmesi
Tasarım Oluşturulması Veya Seçilmesi
Kodlama Kısmı
Kodlarlar Giydirilme Kısmı
Server Kurulumu
Entagrasyon Test
Deneme Süreci
Site Yayınlanması
Yeni isterler doğrultusunda geliştirme








































































































Xml Nedir?

XML

XML stands for eXtensible Markup Language.
XML is designed to transport and store data.


<?xml version="1.0"?>
<note>
    <to>Tove</to>
    <from>Jani</from>
    <heading>Reminder</heading>
    <body>Don't forget me this weekend!</body>
</note>


XML Giriş

XML was designed to transport and store data.
HTML was designed to display data.

XML Nedir?



XML stands for EXtensible Markup Language
XML is a markup language much like HTML
XML was designed to carry data, not to display data
XML tags are not predefined. You must define your own tags
XML is designed to be self-descriptive
XML is a W3C Recommendation

Kendi Tagını Oluştur


<note><to>Tove</to><from>Jani</from><heading>Reminder</heading><body>Don't forget me this weekend!</body></note>


XML Örneği-1


<?xml version="1.0" encoding="ISO-8859-1"?><note>  <to>Tove</to>  <from>Jani</from>  <heading>Reminder</heading>  <body>Don't forget me this weekend!</body></note>


<root>  <child>    <subchild>.....</subchild>  </child></root>


<bookstore>  <book category="COOKING">    <title lang="en">Everyday Italian</title>    <author>Giada De Laurentiis</author>    <year>2005</year>    <price>30.00</price>  </book>  <book category="CHILDREN">    <title lang="en">Harry Potter</title>    <author>J K. Rowling</author>    <year>2005</year>    <price>29.99</price>  </book>  <book category="WEB">    <title lang="en">Learning XML</title>    <author>Erik T. Ray</author>    <year>2003</year>    <price>39.95</price>  </book></bookstore>

XML Tags are Case Sensitive


<Message>This is incorrect</message><message>This is correct</message>

XML tags are case sensitive. The tag <Letter> is different from the tag <letter>.
Opening and closing tags must be written with the same case:

<note><to>Tove</to><from>Jani</from><body>Don't forget me this weekend!</body></note>


<person>  <sex>female</sex>  <firstname>Anna</firstname>  <lastname>Smith</lastname></person>

<messages>  <note id="501">    <to>Tove</to>    <from>Jani</from>    <heading>Reminder</heading>    <body>Don't forget me this weekend!</body>  </note>  <note id="502">    <to>Jani</to>    <from>Tove</from>    <heading>Re: Reminder</heading>    <body>I will not</body>  </note></messages>


Doğru Yazım
<note>  <date>    <day>10</day>    <month>01</month>    <year>2008</year>  </date>  <to>Tove</to>  <from>Jani</from>  <heading>Reminder</heading>  <body>Don't forget me this weekend!</body></note>

Yanlış Yazım
<note day="10" month="01" year="2008"to="Tove" from="Jani" heading="Reminder"body="Don't forget me this weekend!"></note>

DTD & XML Validate

<?xml version="1.0" ?>
<!DOCTYPE note [
  <!ELEMENT note (to,from,heading,body)>
  <!ELEMENT to      (#PCDATA)>
  <!ELEMENT from    (#PCDATA)>
  <!ELEMENT heading (#PCDATA)>
  <!ELEMENT body    (#PCDATA)>
]>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<message>Don't forget me this weekend!</message>
</note>


XML Stringlerinin Parser Edilmesi



txt="<bookstore><book>";txt=txt+"<title>Everyday Italian</title>";txt=txt+"<author>Giada De Laurentiis</author>";txt=txt+"<year>2005</year>";txt=txt+"</book></bookstore>";if (window.DOMParser)  {  parser=new DOMParser();  xmlDoc=parser.parseFromString(txt,"text/xml");  }else // Internet Explorer  {  xmlDoc=new ActiveXObject("Microsoft.XMLDOM");  xmlDoc.async="false";  xmlDoc.loadXML(txt);   }



<html>
<body>
<div>
<b>To:</b> <span id="to"></span><br />
<b>From:</b> <span id="from"></span><br />
<b>Message:</b> <span id="message"></span>
</div>

<script type="text/javascript">
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.open("GET","note.xml",false);
xmlhttp.send();
xmlDoc=xmlhttp.responseXML;
document.getElementById("to").innerHTML=
xmlDoc.getElementsByTagName("to")[0].childNodes[0].nodeValue;
document.getElementById("from").innerHTML=
xmlDoc.getElementsByTagName("from")[0].childNodes[0].nodeValue;
document.getElementById("message").innerHTML=
xmlDoc.getElementsByTagName("body")[0].childNodes[0].nodeValue;
</script>
</body>
</html>

XML & HTML Örneği

<html>
<body>

<script type="text/javascript">
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.open("GET","cd_catalog.xml",false);
xmlhttp.send();
xmlDoc=xmlhttp.responseXML;

document.write("<table border='1'>");
var x=xmlDoc.getElementsByTagName("CD");
for (i=0;i<x.length;i++)
  {
  document.write("<tr><td>");
  document.write(x[i].getElementsByTagName("ARTIST")[0].childNodes[0].nodeValue);
  document.write("</td><td>");
  document.write(x[i].getElementsByTagName("TITLE")[0].childNodes[0].nodeValue);
  document.write("</td></tr>");
  }
document.write("</table>");
</script>

</body>
</html>




<html>
<head>
<script type="text/javascript">
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.open("GET","cd_catalog.xml",false);
xmlhttp.send();
xmlDoc=xmlhttp.responseXML;

x=xmlDoc.getElementsByTagName("CD");
i=0;

function displayCD()
{
artist=(x[i].getElementsByTagName("ARTIST")[0].childNodes[0].nodeValue);
title=(x[i].getElementsByTagName("TITLE")[0].childNodes[0].nodeValue);
year=(x[i].getElementsByTagName("YEAR")[0].childNodes[0].nodeValue);
txt="Artist: " + artist + "<br />Title: " + title + "<br />Year: "+ year;
document.getElementById("showCD").innerHTML=txt;
}
</script>
</head>
<body onload="displayCD()">
<div id='showCD'></div>
</body>
</html>


<html>
<head>

<script type="text/javascript">
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.open("GET","cd_catalog.xml",false);
xmlhttp.send();
xmlDoc=xmlhttp.responseXML;

x=xmlDoc.getElementsByTagName("CD");
i=0;

function displayCD()
{
artist=(x[i].getElementsByTagName("ARTIST")[0].childNodes[0].nodeValue);
title=(x[i].getElementsByTagName("TITLE")[0].childNodes[0].nodeValue);
year=(x[i].getElementsByTagName("YEAR")[0].childNodes[0].nodeValue);
txt="Artist: " + artist + "<br />Title: " + title + "<br />Year: "+ year;
document.getElementById("showCD").innerHTML=txt;
}

Numerik Değerler Kullanımı

<!DOCTYPE html>
<html>
<body>

<p>Integers are considered accurate up to 15 digits.</p>

<button onclick="myFunction()">Try it</button>

<p id="demo"></p>

<script>
function myFunction() {
    var x = 999999999999999;
    var y = 9999999999999999;
    document.getElementById("demo").innerHTML = x + "<br>" + y;
}
</script>

</body>
</html>


Numerik Değerler Kullanımı Küçük Hatalar


<!DOCTYPE html>
<html>
<body>

<p>Floating point arithmetic is not always 100% accurate.</p>

<button onclick="myFunction()">Try it</button>

<p id="demo"></p>

<script>
function myFunction() {
    var x = 0.2 + 0.1;
    document.getElementById("demo").innerHTML = "0.2 + 0.1 = " + x;
}
</script>

</body>
</html>

<!DOCTYPE html>
<html>
<body>

<p>Floating point arithmetic is not always 100% accurate.</p>
<p>But it helps to multiply and divide.</p>

<button onclick="myFunction()">Try it</button>

<p id="demo"></p>

<script>
function myFunction() {
    var x = (0.2*10 + 0.1*10) / 10;
    document.getElementById("demo").innerHTML = "0.2 + 0.1 = " + x;
}
</script>

</body>
</html>

<!DOCTYPE html>
<html>
<body>

<p>Numeric constants, preceded by 0x, are interpreted as hexadecimal.</p>

<button onclick="myFunction()">Try it</button>

<p id="demo"></p>

<script>
function myFunction() {
    document.getElementById("demo").innerHTML = "0xFF = " + 0xFF;
}
</script>

</body>
</html>

Numerik Değerler Kullanımı Hex Sayılar

<!DOCTYPE html>
<html>
<body>

<p>Numeric constants, preceded by 0x, are interpreted as hexadecimal.</p>

<button onclick="myFunction()">Try it</button>

<p id="demo"></p>

<script>
function myFunction() {
    document.getElementById("demo").innerHTML = "0xFF = " + 0xFF;
}
</script>

</body>
</html>

Numerik Değerler Kullanımı-Sınırları Zorlama


<!DOCTYPE html>
<html>
<body>

<p>Infinity is returned if you calculate a number outside the largest possible number.</p>

<button onclick="myFunction()">Try it</button>

<p id="demo"></p>

<script>
function myFunction() {
    var myNumber = 2;
    var txt = "";
    while (myNumber != Infinity) {
        myNumber = myNumber * myNumber;
        txt = txt + myNumber + "<br>";
    }
    document.getElementById("demo").innerHTML = txt;
}
</script>

</body>
</html>

Sonsuzluk


<!DOCTYPE html>
<html>
<body>

<p>Division by zero also generates Infinity.</p>

<button onclick="myFunction()">Try it</button>

<p id="demo"></p>

<script>
function myFunction() {
    var x = 2/0;
    var y = -2/0;
    document.getElementById("demo").innerHTML = x + "<br>" + y;
}
</script>

</body>
</html>

Tip Dönüşümü

<!DOCTYPE html>
<html>
<body>

<p>Infinity is a Number.</p>

<button onclick="myFunction()">Try it</button>

<p id="demo"></p>

<script>
function myFunction() {
    document.getElementById("demo").innerHTML = typeof Infinity;
}
</script>

</body>
</html>


Veri Bozulması

<!DOCTYPE html>
<html>
<body>
<p>A number divided by a non-numeric string becomes NaN (Not a Number):</p>

<p id="demo"></p>

<script>
document.getElementById("demo").innerHTML = 100 / "Apple";
</script>

</body>
</html>

Numerik Kullanım

<!DOCTYPE html>
<html>
<body>
<p>A number divided by a numeric string becomes a number:</p>

<p id="demo"></p>

<script>
document.getElementById("demo").innerHTML = 100 / "10";
</script>

</body>
</html>

Numerik Değerler

<!DOCTYPE html>
<html>
<body>

<p id="demo"></p>

<script>
var x = 100 / "Apple";
document.getElementById("demo").innerHTML = isNaN(x);
</script>

</body>
</html>

<!DOCTYPE html>
<html>
<body>
<p>If you use NaN in a mathematical operation, the result will also be NaN:</p>

<p id="demo"></p>

<script>
var x = NaN;
var y = 5;
document.getElementById("demo").innerHTML = x + y;
</script>

</body>
</html>


Veri Dönüşümü


<!DOCTYPE html>
<html>
<body>

<p>The typeof NaN is:</p>

<p id="demo"></p>

<script>
document.getElementById("demo").innerHTML = typeof NaN;
</script>

</body>
</html>


Numerik Değerler ve Obje

<!DOCTYPE html>
<html>
<body>
<p id="demo"></p>

<script>
var x = 123;
var y = new Number(123);

document.getElementById("demo").innerHTML = typeof x + "<br>" + typeof y;
</script>

</body>
</html>


Doğru Değer Karşılaştırma


<!DOCTYPE html>
<html>
<body>

<p>Never create numbers as objects.</p>
<p>Numbers and objects cannot be safely compared.</p>

<p id="demo"></p>

<script>
var x = 500;              // x is a number
var y = new Number(500);  // y is an object
document.getElementById("demo").innerHTML = (x==y);
</script>

</body>
</html>


Obje ve Numerik Değer Karşılaştırma

<!DOCTYPE html>
<html>
<body>

<p>Never create numbers as objects.</p>
<p>JavaScript objects cannot be compared.</p>

<p id="demo"></p>

<script>
var x = new Number(500);  // x is an object
var y = new Number(500);  // y is an object
document.getElementById("demo").innerHTML = (x==y);
</script>

</body>
</html>

Max Value

<!DOCTYPE html>
<html>
<body>

<p id="demo"></p>

<script>
document.getElementById("demo").innerHTML = Number.MAX_VALUE;
</script>

</body>
</html>


Js ToString


<!DOCTYPE html>
<html>
<body>

<p>The toString() method converts a number to a string.</p>

<p id="demo"></p>

<script>
var x = 123;
document.getElementById("demo").innerHTML =
    x.toString() + "<br>" +
   (123).toString() + "<br>" +
   (100 + 23).toString();
</script>

</body>
</html>

Js to Exponential


<!DOCTYPE html>
<html>
<body>

<p>The toExponential() method returns a string, with the number rounded and written using exponential notation.</p>

<p>An optional parameter defines the number of digits behind the decimal point.</p>

<p id="demo"></p>

<script>
var x = 9.656;
document.getElementById("demo").innerHTML =
    x.toExponential() + "<br>" +
    x.toExponential(2) + "<br>" +
    x.toExponential(4) + "<br>" +
    x.toExponential(6);
</script>

</body>
</html>

Js ToFixed

<!DOCTYPE html>
<html>
<body>

<p>The toFixed() method rounds a number to a given number of digits.</p>
<p>For working with money, toFixed(2) is perfect.</p>

<p id="demo"></p>

<script>
var x = 9.656;
document.getElementById("demo").innerHTML =
    x.toFixed(0) + "<br>" +
    x.toFixed(2) + "<br>" +
    x.toFixed(4) + "<br>" +
    x.toFixed(6);
</script>

</body>
</html>


Js Precision

<!DOCTYPE html>
<html>
<body>

<p>The toPrecision() method returns a string, with a number written with a specified length:</p>

<p id="demo"></p>

<script>
var x = 9.656;
document.getElementById("demo").innerHTML =
    x.toPrecision() + "<br>" +
    x.toPrecision(2) + "<br>" +
    x.toPrecision(4) + "<br>" +
    x.toPrecision(6);   
</script>

</body>
</html>

Js Number

<!DOCTYPE html>
<html>
<body>

<p>The global JavaScript function Number() converts variables to numbers:</p>

<p id="demo"></p>

<script>
document.getElementById("demo").innerHTML =
    Number(true) + "<br>" +
    Number(false) + "<br>" +
    Number("  10") + "<br>" +
    Number("10  ") + "<br>" +
    Number("10 6");   
</script>

</body>
</html>

Js ParseInt


<!DOCTYPE html>
<html>
<body>

<p>The global JavaScript function parseInt() converts strings to numbers:</p>

<p id="demo"></p>

<script>
document.getElementById("demo").innerHTML =
    parseInt("10") + "<br>" +
    parseInt("10.33") + "<br>" +
    parseInt("10 6") + "<br>" +   
    parseInt("10 years") + "<br>" +   
    parseInt("years 10");   
</script>

</body>
</html>

Js ParseFloat

<!DOCTYPE html>
<html>
<body>

<p>The global JavaScript function parseFloat() converts strings to numbers:</p>

<p id="demo"></p>

<script>
document.getElementById("demo").innerHTML =
    parseFloat("10") + "<br>" +
    parseFloat("10.33") + "<br>" +
    parseFloat("10 6") + "<br>" +   
    parseFloat("10 years") + "<br>" +
    parseFloat("years 10");       
</script>

</body>
</html>

Js ValueOf

<!DOCTYPE html>
<html>
<body>
<p id="demo"></p>

<script>
var x = 123;

document.getElementById("demo").innerHTML =
    x.valueOf() + "<br>" +
    (123).valueOf() + "<br>" +
    (100 + 23).valueOf();
</script>

</body>
</html>


Js Math Kütüphanesi Random


<!DOCTYPE html>
<html>
<body>

<p>Math.random() returns a random number betwween 0 and 1.</p>

<button onclick="myFunction()">Try it</button>

<p id="demo"></p>

<script>
function myFunction() {
    document.getElementById("demo").innerHTML = Math.random();
}
</script>

</body>
</html>


Js Min / Max Kullanımı


<!DOCTYPE html>
<html>
<body>

<p>Math.min() returns the lowest value.</p>

<button onclick="myFunction()">Try it</button>

<p id="demo"></p>

<script>
function myFunction() {
    document.getElementById("demo").innerHTML =
    Math.min(0, 150, 30, 20, -8);
}
</script>

</body>
</html>


Js Random Fonksiyon ile Kullanımı



<!DOCTYPE html>
<html>
<body>

<p>
In HTML, all global variables will become a window variables.
</p>

<p id="demo"></p>

<script>
myFunction();
document.getElementById("demo").innerHTML =
"I can display " + window.carName;

function myFunction() {
    carName = "Volvo";
}
</script>

</body>
</html>

Js Round

<!DOCTYPE html>
<html>
<body>

<p>Math.round() rounds a number to its nearest integer.</p>

<button onclick="myFunction()">Try it</button>

<p id="demo"></p>

<script>
function myFunction() {
    document.getElementById("demo").innerHTML = Math.round(5.7);
}
</script>

</body>
</html>


Js Ceil

<!DOCTYPE html>
<html>
<body>

<p>Math.ceil() rounds a number <strong>up</strong> to its nearest integer.</p>

<button onclick="myFunction()">Try it</button>

<p id="demo"></p>

<script>
function myFunction() {
    document.getElementById("demo").innerHTML = Math.ceil(4.4);
}
</script>

</body>
</html>

Js Floor

<!DOCTYPE html>
<html>
<body>

<p>Math.floor() rounds a number <strong>down</strong> to its nearest integer.</p>

<button onclick="myFunction()">Try it</button>

<p id="demo"></p>

<script>
function myFunction() {
    document.getElementById("demo").innerHTML = Math.floor(4.7);
}
</script>

</body>
</html>


Js Random & Ceil Birlikte Kullanım

<!DOCTYPE html>
<html>
<body>
<p>Math.floor() combined with Math.random() can return random integers.</p>
<button onclick="myFunction()">Try it</button>
<p id="demo"></p>
<script>
function myFunction() {
    document.getElementById("demo").innerHTML =
    Math.floor(Math.random() * 11);
}
</script>
</body>
</html>

Js ve Hazır Math

<!DOCTYPE html>
<html>
<body>

<p>Math constants are E, PI, SQR2, SQR1_2, LN2, LN10, LOG2E, LOG10E</p>

<button onclick="myFunction()">Try it</button>

<p id="demo"></p>

<script>
function myFunction() {
    document.getElementById("demo").innerHTML =
    Math.E + "<br>" +
    Math.PI + "<br>" +
    Math.SQRT2 + "<br>" +
    Math.SQRT1_2 + "<br>" +
    Math.LN2 + "<br>" +
    Math.LN10 + "<br>" +
    Math.LOG2E + "<br>" +
    Math.LOG10E + "<br>";
}
</script>

</body>
</html>

Js Hazır Methodlar
 





<!DOCTYPE html>
<html lang="tr">
<head>
    <title>Java Script Fonksiyon ve Sınıf Oluşturma</title>
    <meta charset ="utf-8">
</head>
<body>
    <script>
    function Diktorgen()
    {
        this.g="";
        this.y="";
        this.alan=function() { return this.g * this.y; }
        this.cevre=function() { return 2*(this.g + this.y);}
    }
    var dik = new Diktorgen();
    dik.g =Number(prompt("Genişlik:"));
    dik.y =Number(prompt("Yukseklik:"));
    alert("Alan="+ dik.alan()+"Cevre="+ dik.cevre());
    </script>
</body>
</html>



<!DOCTYPE html>
<html lang="tr">
<head>
    <title>Java Script </title>
    <meta charset ="utf-8">
</head>
<body>
    <script>
    var i=0;
    function pencere()
    {
        open("http://www.cbu.edu.tr","_blank","height=300",width="200");
    }
    function say()
    {
        document.getElementById("kutu").innerHTML = i;
        i++;
    }
    setTimeout("pencere()",1000);
    setInterval("pencere()",1000);
    </script>
    <input type="button" value="Pencere" onclick="pencere()">
    <div id="kutu"></div>
</body>
</html>


<html lang="tr">
<head>
    <title>Başlık Yazısı</title>
    <meta charset ="utf-8">
</head>
<body>
<form name="kayit" enctype="text/plain" action=get>
<table>
    <tr>
    <td> Ad Soyad:</td>
    <td>:<input type="text" name="ad" required="required" autofocus="autofocus"></td>
    </tr>
    <tr>
    <td>E Mail</td>
    <td>:<input type="email" name="posta" required="required"></td>
    </tr>
    <tr>
    <td>Adres</td>
    <td>:<textarea name="adres" rows="4" cols="50" required="required"></textarea></td>
    </tr>
    <tr>
        <td></td>
        <td>
            <input type="checkbox" name="secenek-1" value="deger-1">Değer-1
            <input type="checkbox" name="secenek-2" value="deger-2">Değer-2
            <input type="checkbox" name="secenek-3" value="deger-3">Değer-3
            <input type="checkbox" name="secenek-4" value="deger-4">Değer-4
        </td>
    </tr>
    <tr>
    <td>
    </tr>
    <tr>
        <td></td>
        <td>
            <input type="radio" name="secenek-1" value="deger-1" checked="checked">Değer-1
            <input type="radio" name="secenek-2" value="deger-2">Değer-2
            <input type="radio" name="secenek-3" value="deger-3">Değer-3
            <input type="radio" name="secenek-4" value="deger-4">Değer-4
        </td>


    </tr>
    <tr>
    <td>
    </tr>
    <tr>
    <td>Yaşanan İl</td>
    <td>
<select name="iller" size="1">
    <optgroup label="Marmara">
        <option>İstanbul</option>
        <option>Bursa</option>
        <option>Edirne</option>
        <option>Kırklareli</option>
        <option>Tekirdağ</option>
    </optgroup>
    <optgroup label="Ege">
        <option>İzmir</option>
        <option>Manisa</option>
        <option>Aydın</option>
        <option>Muğla</option>
        <option>Denizli</option>
    </optgroup>
    </td>
    </tr>
    <tr>
    <td></td>
    <td>
        <input type="submit" value="gonder">
        <input type="reset" value="iptal">
        <input type="image" src="./buttonresim.jpg">
    </td>
    </tr>
</table>
</form>
</body>
</html>



Dışarıdan Js


<!DOCTYPE html>
<html>
<body>

<h1>External JavaScript</h1>

<p id="demo">A Paragraph.</p>

<button type="button" onclick="myFunction()">Try it</button>

<p><strong>Note:</strong> myFunction is stored in an external file called "myScript.js".</p>

<script src="myScript.js"></script>

</body>
</html>

myScript.js

function myFunction()
 {
 document.getElementById("demo").innerHTML = "Paragraph changed.";
}

Picture gif



<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Can Change Images</h1>
<img id="myImage" onclick="changeImage()" src="pic_bulboff.gif" width="100" height="180">
<p>Click the light bulb to turn on/off the light.</p>
<script>
function changeImage() {
    var image = document.getElementById('myImage');
    if (image.src.match("bulbon")) {
        image.src = "pic_bulboff.gif";
    } else {
        image.src = "pic_bulbon.gif";
    }
}
</script>
</body>
</html>


Ek Örnekler


<html>
<head>
<meta http-equiv="content-type"content="text/html;
charset=windows-1254">
<title>javascrip'te döngü</title>
<script language="JavaScript1.2">
<!--javascrript kodunu eski sürüm browser'lardan saklayalim
//santigrat-fahrenayt tablosu
document.writeln("<Table Border=\"1\">")
document.writeln("<TR><TD>Santigrad</TD><TD>Fahrenayt</TD></TR>")
for(santigrad=0;santigrad<=100;++santigrad)
   {
     fahrenhayt=santigrad*9/5+32
     document.writeln("<TR><TD>"+santigrad+"</TD><TD>"+fahrenhayt+
     "</TD></TR>")
     }
     document.writeln("</TABLE>")
   //-->
</script></head>
<body>
</body>
</html>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Untitled</title>
<script>
<!—
function fullwin(targeturl){
window.open(targeturl,"","fullscreen,scrollbars")
}
//-->
</script>
</head>
<body>
<form>
<input type="button" onClick="fullwin('http://www.cbu.edu.tr')" value="Open window">
</form>
</body>
</html>

<HEAD>

<SCRIPT LANGUAGE="JavaScript">
<!-- Begin
function toBin(form) {
base = parseInt(form.base.value);
num = parseInt(form.num.value);
form.amount.value = num.toString(base);
}
//  End -->
</script>
</HEAD>

<BODY>

<form name=numform>
<center>
<input type=text name=num size=8> to base
<input type=text name=base size=8 value=2 onBlur="if ((this.value<1)||(this.value>36)){alert('The base must be between 2 and 36.');this.select();this.focus();}">
<input type=button value=" = " onclick="toBin(this.form)">
<input type=text name=amount size=15>
</center>
</form>