PHP etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
PHP etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

Yararlı Kodlar 2 PHP

     Yararlı Kodlar 2


PHP de bilinmesi gereken yararlı kodlar.

function_exists:proje içinde fonksiyon varmı, yokmu kontrol eden kod
class_exists:Class varmı yokmu kontrol eden kod
method_exists:Class içinde method varmı yokmu kontrol eden kod
property_exists:Class içinde property varmı yokmu kontrol eden komut
is_subclass_of:Class 'ın içinde miras alınan bir class varmı yokmu kontrol eden komut'
interface_exists:interface varmı yokmu kontrol eden komut
trait_exists:trait varmı yokmu kontrol eden komut
is_a:değişken hangi class 'dan türüdüğünü kontrol etmek için kulanılan kod
extension_loaded:Varolan eklentileri kontrol etmek için kullanılır.

Yararlı Kodlar 1 PHP

Yararlı Kodlar 1


PHP de bilinmesi gereken yararlı kodlar.


defined:sabitin var olup olmadıgını kontrol eder.
isset:değişken varsa true döner
empty:değişken null ise true döner
is_double:bir değişkenin double türünde olup olmadığını kontrol eder
is_float:bir değişkenin float türünde olup olmadığını kontrol eder
is_real:bir değişkenin float türünde olup olmadığını kontrol eder
is_int:bir değişkenin tamsayı türünde olup olmadığını kontrol eder
is_integer:bir değişkenin tamsayı türünde olup olmadığını kontrol eder
is_long:bir değişkenin is_long türünde olup olmadığını kontrol eder
is_null:bir değişkenin null türünde olup olmadığını kontrol eder
is_numeric:bir değişkenin sayı mı yoksa sayısal bir dize mi oldugunu kontrol eder
is_iterable:bir değişkenin içieriğinin yinelenebilir bir değer olup olmadıgı kontrol eder
is_obcejt:bir değişkenin bir nesne olup olmadıgına bakar
is_scalar:birdeğişkenin skaler olup olmadıgına bakar.
is_string:bir değişkenin string türünde olup olmadıgına bakar.

Değişken İşleme Methodları PHP

 Değişken İşleme Methodları PHP


is_array, is_bool, is_callable,is_countable, is_double, is_float is_int, is_integer, is_iterable
is_long, is_null, is_numeric, is_object, is_real, is_resource is_scalar, is_string



Magic Methods PHP

 Php sihirli methodlar



 __construct ,__destruct ,__call ,__callStatic ,__get ,__set ,__isset ,__unset ,__sleep ,__wakeup ,__toString ,__invoke ,__clone ,sumClone ,__debugInfo ,__set_state



<?php
require_once "Eductaion.php";
use magic_method\education\Eductaion;

$student = new Eductaion();//__construct,__destruct örnek

$student->message();//__call örnek

magic_method\education\Eductaion::List();//__callStatic örnek

echo $student->tckn; //__get örnek


$student->vkn =12345; //__set örnek

isset($student->tckn);//__isset örnek
empty($student->vkn);//__isset örnek


unset($student->vkn);//__unset örnek

/*
$result = serialize($student);//__sleep örnek

unserialize($result);//__wakeup örnek


echo $student;//__toString örnek

Eductaion('abc');//__invoke örnek
*/

$student1 = clone $student;//__clone örnek
$student2 = clone $student;//__clone örnek
$student->sumClone();//__clone örnek


var_dump($student);




<?php
namespace magic_method\education;
class Eductaion{

private $tckn;
private static $number = 0;

/**
Class çağrıldığında ilk çağrılan method
*/
function __construct(){
echo "Nesne belleğe yüklendi <br>";
}

/**
Class çağrıldığında sonra işlem sonunda çağrılan sınıf
*/
function __destruct(){
echo "Nesne bellekten silindi <br>";
}

/**
eğer muvcut class da var olmayan bir method çağrıldığında
dönmesini istediğimiz response bu __call methodu döner.
*/
function __call($name,$per){
echo $name." methodu bu sınıfta mevcut değil<br>";
}

/**
__callStatic Nesne içinde var olmayan bir static method çağrıldığında. çalışan method.
*/
public static function __callStatic($name,$per){
echo $name." methodu bu sınıfta mevcut değil<br>";
}

/**
__get Nesne içinde var olmayan veya erişim izni olmayan bir proertye erişilmeye çalıştığında çalışır.
*/
public function __get($name){
echo $name." bu property erililmiyor veya bulunamadı<br>";
}

/**
__set Nesne içinde var olmayan veya erişim izni olmayan bir proertye değer atamaya çalıştığında çalışır.
*/
public function __set($name,$val){
echo $name." bu property erililmiyor veya bulunamadı".$val." değeri atanamaz<br>";
}

/**
__isset Nesne içinde var olmayan veya erişim izni olmayan bir proertye isset veya empty ile çağrıldığında çalışır.
*/
public function __isset($name){
echo $name." isimli property bulunmuyor veya erilmiyor. bu yüzden isset veya empty func ile sınayamazsınız<br>";
}

/**
__unset Nesne içinde var olmayan veya erişim izni olmayan bir proertye __unset foncksiyonu ile yok edilmeye çalışıldığında çalışır.
*/
public function __unset($name){
echo $name." isimli property bulunmuyor veya erilmiyor. bu yüzden unset func ile sınayamazsınız<br>";
}

/**
__sleep Nesneye serialize çalışıldığında çalışır.
*/
public function __sleep(){
echo " Nesne dizi haline getiriliyor<br>";
}

/**
__wakeup Nesneye unserialize çalışıldığında çalışır.
*/
public function __wakeup(){
echo "dizi nesne haline getiriliyor<br>";
}

/**
__toString çalışıldığında Nesne yazdırlmaya çalışıldığında çalışır.
*/
public function __toString(){
echo "Nesne yazdırlmaya çalışıldı<br>";
}

/**
__invoke Nesne fonksiyon gibi çalıştırıldığında çalışır.
*/
public function __invoke(){
echo "Nesne fonksiyon gibi çalıştırıldığında döner.<br>";
}

/**
__clone Nesne klonlandığında çalışır .
*/
public function __clone(){
self::$number++;
}
public function sumClone(){
echo "Toplam clonle sayısı:".self::$number."<br>";
}

/**
__debugInfo Nesne var_dump methodu uygulandığında çalışır .
*/
public function __debugInfo(){
echo "Nesneye var_dump uygulandı<br>";
}

/**
__debugInfo Nesne var_export methodu uygulandığında çalışır .
*/
//public function __set_state(){}
}

Nesne Kopyalama Clone PHP

 PHP ile Nesne Kopyalama


Clone ile nesneyi kopyalıp her iki değişkende de iki farklı nesne gibi ilerliyor.
Clone kullanmaz ise tek nesnede her iki değişken aynı özellikleri taşır ve gösterir.
<?php
namespace nese_kopyalama\education;

class student{

public $name;
public $lastname;

function __construct($firtName,$lastname)
{
$this->name = $firtName;
$this->lastname = $lastname;
}

public function studentInfo(){
return $this->name .' '.$this->lastname;
}
}


require_once "nesne_kopyalama.php";

$student = new nese_kopyalama\education\student("ali","veli");

$newStudent = clone $student;

$newStudent->name = "can";
$newStudent->lastname = "cam";

echo $student->studentInfo();
echo '<br>';
echo $newStudent->studentInfo();


PHP Namespace Kullanımı

namespace :birlikte çalışan sınıfları gruplayarak daha iyi bir organizyon sağlaması için kullanılır.


    Gerçekte persons diye bir klasorumuz yok bütün dosyalar aynı klasordedir.

Burada sadece persons da gruplayıp onun altındadaki classları kullanıyoruz.

index.php klasorunde çağırırken hangi classı kullanacak isek namespace ile çağırıyoruz sadece.

<?php //test1.php

namespace persons\primaryschool;
class Student {
function Message(){
echo "ben ilkokul class'ıyım Message <br>";
}
}
<?php //test2.php

namespace persons\highschool;
class Student extends \persons\primaryschool\Student
{
function __construct(){
echo "ben lise class'ıyım __construct <br>";
}
}
<?php //index.php

require_once "test1.php";
require_once "test2.php";

use \persons\highschool\Student as Lise;

$Lise = new Lise();
$Lise->Message();

Çıktı:

ben lise class'ıyım __construct
ben ilkokul class'ıyım Message


Dosya İşlemleri PHP

 Dosya işlemleri 


<?php
#linix platformlarda / slah ile kullanılır. windows platformlarda / \ kullanılır.
#path : dosya dizini

$path = 'files/documnets/example.txt';

//dosya adını alır. uzantısı istenmiyorsa ikinci parametrede yazılır.
echo basename($path,'.txt'); //example

//dosya yolunu almak için
echo dirname($path); //files/documnets/

//hem dosya yolu hemde dosya adını array olarak almak için
/*
dirname: dosya yolu
basename: dosya adı
extension: dosya uzantısı
filename dosya adı

ikinici parametrede sabitler ile kullanılırsa string döner.
PATHINFO_DIRNAME, PATHINFO_BASENAME,PATHINFO_EXTENSION,PATHINFO_FILENAME
*/
print_r(pathinfo($path));
print_r(pathinfo($path,PATHINFO_BASENAME));

/* dosya tipini döner.
fifo,char,dir,block,link,file,socket,unknown
*/
$find = filetype($path);
echo $find; // file

//dosya ön belleğe alındığı için chace temizlenmesi gerekir.
clearstatcache();

//dosya hakkında bilgileri verir.
print_r(stat($path));


//Dizin altındaki dizin ve dosyaları getirir.
//ikinci paramtere 1 girerse sıralama yapar.
$dir = scandir('./');
print_r($dir);


// dizinler ve dosyaların hepsini listeler
$dir = glop('uploads/*');
print_r($dir);

//tüm jpg uzantılı dosyaları getirir.
$dir = glop('uploads/*.jpg');
print_r($dir);
/*
GLOB_MARK : bir yerde dizin varsa dizin sonunda bir slash bırakır.
GLOB_ONLYDIR : sadece dizinleri getir.
GLOB_NOSORT : sırlamadan getir.
GLOB_BRACE : sadece belirtili dosyaları getirir
/*.* içinde nokta geçen herşeyi getirir
/e* e ile başlayan tüm dosya dizinleri getirir.
*/

$dir = glop('uploads/*',GLOB_MARK);
$dir = glop('uploads/*.{rar,txt}',GLOB_BRACE);
print_r($dir);

//Dosya okuma
$path = 'files/documnets/example.txt';
$openFile = fopen($path);

//feof :end of file
while(!feof($openFile)){
$read = fgets($openFile); //fgets satır satır oku
echo $read.'<br>';
}

fclose($openFile);


//satır sonu /n yerine kulanılabilir ,sabit PHP_EOL End Of Line
echo "deneme ".PHP_EOL."deneme 2";



//dosya oluştur ve değerleri yaz.
$read = file_put_contents('deneme.txt', 'deneme içerik'.FILE_APPEND);















Date Time PHP

 Php Tarih Saat fonksiyonları


<?php

/**
* UTC - Coordinated Universal Time "Eş güdümlü evrensel saat"
* GMT - Greenwich Mean Time "Greenwich Ortalama zamanı"
* Türkiye UTC+3, GMT+3
*/

//saat dilimini gösterir.
echo date_default_timezone_get();

//php inideki tanımlı saaat dilimlerini gösterir
timezone_identifiers_list(); //fonksiyona sayı verirse tanımlı bölgeleri getirir

//Saat dilimini değiştirir.
date_default_timezone_set("Europe/Istanbul");

//zaman bilgilerini array olarak verir.
getdate();

//Ülke plaka kodu, enlem boylam bilgilerini verir. time_zone_location_get
$a = timezone_open("Europe/Istanbul");
time_zone_location_get($a);

//timestap
$a = time();
echo date('d-m-Y',$a);

// stirng time
setlocale(LC_ALL,'tr-TR');
$a = iconv("LATIN5", "UTF-8" ,strftime("%d %B %Y %T %A %Z"));
echo $a;

//zaman ekleme
$a = strtotime("1 second",time());
$a = strtotime("2 seconds",time());
$a = strtotime("1 minute",time());
$a = strtotime("1 hour",time());
$a = strtotime("2 hours",time());
$a = strtotime("1 day",time());
$a = strtotime("2 days",time());
$a = strtotime("2 weeks",time());
$a = strtotime("2 months",time());
$a = strtotime("2 years",time());
echo $a;

//bir ayın kaç çektiğini öğrenmek için kullanılır.
cal_days_in_month(CALL_GREGORIAN, 2, 1996);

/**
* iki tarih arası farkı verir date_diff
* %y = yıl farkını verir.
* %m = ay farkını verir.
* %d = gün farkını verir.
* %h = saat farkını verir.
* %i = dakika farkını verir.
* %s = saniye farkını verir.
* %R = pozitif negatif sembölünü verir.
*/
$a = date_create("2020-10-01");
$b = date_create("2023-01-01");
$result = date_diff($a,$b);
echo $result->format("%y yıl fark var");
?>




















Dosya Dahil Etme PHP

 


<?php

/**
require eğer dosya yoksa Fatal error verir
include eğer dosya yoksa Warning error verir.
..._once dosyayı bir kere yükle, tekrar tekrar aynı dosyayı yükleme.
*/


require "routing.php";
require_once "routing.php";

include "theme.php";
include_once "theme.php";

?>

Session Güvenlik Önlemi PHP

 


session_set_cookie_params

Sessionun kimlik numarasının gönderileceği cookienin özelliklerinin değiştirilmesini sağlar.

session_set_cookie_params (

int $lifetime,

string $path,

string $domain,

bool $secure = false,

bool $httponly = false

)

lifetime:

 -Cookie kullanıcının bilgisayarında ne kadar kalacak?

 -Varsayılan: «0». Kullanıcı tarayıcıyı kapatana kadar.

 -Hangi sorunlar çıkabilir?

path:

 -Cookie domaindeki hangi klasörlere gönderilecek?

 -Varsayılan: «/» Hepsine.

domain:

 -Cookie hangi domainlerde geçerli olacak?

secure:

-Cookie sadece güvenilir bağlantılarda mı gönderilecek?

httponly:

-Cookie sadece HTTP protokolü ile kurulan bağlantılarda mı gönderilecek?

Burada anlatılan özellikler sadece session cookieleri için değil, tüm cookieler için geçerli özniteliklerdir.

Düzenli İfadeler "Regular Expresions" PHP



Düzenli İfadeler "Regular Expresions"

Ayarlamalar

i = büyük harf küçük harf duyarlılığı olmasın

x = Desendeki boşlukları görmezden gelmek için kulanılır

s = birden fazla satır olduğu ve hepsinin kontrol edileceğini belirtmek için

u = Stringlerin karakter kodlamasının UTF-8 olduğunun varsayılmasını sağlar(türkçe vb.)


Konum Belirleyiciler

^ Metin içeriğinin başında geçip geçmediğine bakar.

$               Metin içeriğinin en sonunda geçip geçmediğine bakar.

\b              kelimeleri kontrol eder herhangibi bir kelimenin başında geçiyorsa sonuc döner \b onuna koyarsak sonunda arar.

\B              kelimlerin ortasında varsa sonuc döner. sonunda boşluk varsa da bulur. eğer \B sonuna yazarsak boşlugu dilkkate almaz.

?=              verilen kelimenin sonuna geçen ifadeyi aramak için kullanılır.  başına eklersek başında arar.

?!              verilen kelimenin sonuna geçmeyen ifadeyi aramak için kullanılır. başına eklersek başında arar.


Nicelik belirleyiciler

{a}     kaç kez tekrarlananları belirtim, getireceğimiz ifadeleri bulup getirir. {1} birkez tekrar ediyorsa getir.

{a,}    kaç kez tekrarlananları belirtim, getireceğimiz ifadeleri bulup getirir. {2,} iki ve daha fazla olanları getir.

{a,b}   kaç kez tekrarlananları belirtim, getireceğimiz ifadeleri bulup getirir. {1,3} 1 ile 3 arasında tekrarlanıyorsa getir.

+       bir veya daha fazla tekrarlanıyorsa getir. "/PHP+/"

*       hiç geçmesede geçsede hepsini alır.

?       hiç veya 1 kere tekrarlanıyorsa getir.


Özel Belirleyiciler
\w OR [a-zA-Z0-9_] büyük harf küçük harf sayı yada _ varsa bunların hepsini arar. "boşlukları getirmez"
\W      OR      [^a-zA-Z0-9_]           büyük harf küçük harf sayı yada _ varsa bunların alma, bunlar dışındakileri getir.
() (p)(h)(p)                           hem php ara hemde tek tek harfleri ara.
(a|b)   (react|node)js                          react veya node varsa getir. veya reactjs ,nodejs varsa getirir.
(?:)                                                   alt grup oluşturmak için, node ve js geçen ifadeyi getirir.
\                                                          kendisinden sonra gelen ifadenin özel bir ifade değil standart bir karakter oldugunu belirtir. \* OR \. \+

[abc]                                     [php] p,h,p geçen tüm ifadeleri getir.
[a-z]                                            a dan zye tüm küçük karakterleri getir.
[a-d]                                            a dan dye tüm küçük karakterleri getir.
[A-Z]                                          a dan zye tüm büyük karakterleri getir.
[a-zA-Z]                                     a dan zye tüm küçük,büyük karakterleri getir.
[a-zA-Z0-9]                                a dan zye tüm küçük,büyük karakterleri ve rakamları da getir.
[a-zA-Z0-9ığüşöçİĞÜLÖÇ]/u   a dan zye tüm küçük,büyük karakterleri ve rakamları da getir. türkçe                                                         karakterleri de getir.

[^abc] [^a-z]                  başına şabka bırakırsak bunları getirme deriz, bunlar dışındakileri getirir.            
[^aeıiuüoö]                         sesli harfler hariç tut,diğerlerini sesiz harfleri getir.          
.                                    tüm karakterleri al. yeni satır karakterlerini alma "\n"
[0-9]                            0 ile 9 arası rakamları getirir.
[0-5]                                   0 ile 5 arası rakamları getirir.
\d                [0-9]                sadece rakamları getir.
\D           [^0-9]       rakam dışındakileri getir.
\s                [ ]                     sadece boşlukları getirir.
\S                [^ ]                  boşluk dışındakileri getirir.


Fonksiyonlar
preg_match() sadece metnin içinde pattern bulursa döner, hepsine bakmaz, bir sonucu döner.
(desen,metin,sonuc değeri array.) sonuc değişkeni verilemz ise fonksiyon 1                                             true 0 false döner.

preg_match_all() tüm metinde arar ve ne kadar kulanıldı ise sonucu döner.
(desen,metin,sonuc değeri array) sonuc değişkeni verilemz ise fonksiyon ne                                         kadar var ise sayı döner yoksa 0 false döner.

preg_filter() tüm metinde aranan değeri, metnin heryerinde değiştirir.
(desen,yerine gelecek değer,metin)
*aranan metni bulamazsa boş değer döner

preg_replace() tüm metinde aranan değeri, metnin heryerinde değiştirir.
(desen,yerine gelecek değer,metin)
*aranan metni bulamazsa eski metni döner.

preg_split() pattern boş verilir ise "//" her karakteri parçalar array değeri olarak döner.
pattern "/ /" boşluk verilir ise her boşlukta parçalayıp array değeri olarak                                                döner.
pattern "/php/" verilir ise php kullanılan yerlerden metni bölüp array döner.                                            php kelimesini metinden çıkarır.

preg_grep() Arrayin içinde aranan değer var ise onları bulup indexleri ile array olarak verir.

preg_quote() özel ifadeler metinde geçiyor ise, başlarına ters slash ekler.
ekstra bir karakter için bırakılmasını ikinci paramtrede verilebilir.


Örnekler
----------------------------------------------------------------------------
<?php

$text = "Lorem Ipsum, kısaca Lipsum,php masaüstü yayıncılık ve basın yayın sektöründe kullanılan taklit yazı bloğu olarak tanımlanır..";
$pattern = "/php/";

/*
* $text değişkenin içinde php var ise $result[0] = php olur.
* yok ise $result array boş döner.
*/

preg_match($pattern,$text,$result);//desen,metin,sonuc değeri array.
print_r($result);//Array ( [0] => php )
?>
----------------------------------------------------------------------------
<?php
$text = "Lorem Ipsum, kısaca Lipsum,php masaüstü yayıncılık ve basın php yayın sektöründe kullanılan taklit yazı bloğu olarak tanımlanır..";
$pattern = "/php/";

/*
* $text değişkenin içinde php var ise $result[0] = php olur.
* yok ise $result array boş döner.
*/

preg_match_all($pattern,$text,$result);//desen,metin,sonuc değeri array.
print_r($result);//Array ( [0] => Array ( [0] => php [1] => php ) )
?>
----------------------------------------------------------------------------
<?php
$text = "Lorem Ipsum, kısaca Lipsum,php masaüstü yayıncılık ve basın php yayın sektöründe kullanılan taklit yazı bloğu olarak tanımlanır..";
$pattern = "/php/";

/*
* $text değişkenin içinde php var ise $result[0] = php olur.
* yok ise $result array boş döner.
*/

if(preg_match($pattern,$text)){
echo 'var';
}
else{
echo 'yok';
}
?>
----------------------------------------------------------------------------
<?php

$text = "Hello my name php is php.";
$pattern = "/php/";
$resplace= "Node JS";

/*
* tüm metinde aranan değeri, metnin heryerinde değiştirir.
*/

$result = preg_filter($pattern,$resplace,$text);
print_r($result);

$result = preg_replace($pattern,$resplace,$text);
print_r($result);
?>
----------------------------------------------------------------------------
<?php

$text = "Hello my name php is php.";
$pattern = "/asdasdas/";
$resplace= "Node JS";

/*
* preg_filter = değişicek metin yoksa boş döner
* preg_replace = değişicek metin yoksa metni döner
*/

$result = preg_replace($pattern,$resplace,$text);
print_r($result);

$result = preg_filter($pattern,$resplace,$text);
print_r($result);
?>
----------------------------------------------------------------------------
<?php
/*
* Çoklu arama, çoklu replace etme.
*/
$text = "Hello my name php is php.";
$pattern = array("/php/","/my/","/\./"); //nokta düzenli iafede oldugu için önüne ters slash eklenir normal ifade olarak algılaması için
$resplace= array("Node JS","your","!");

$result = preg_replace($pattern,$resplace,$text);
print_r($result);
?>
----------------------------------------------------------------------------
<?php
/*
* Çoklu değer, çoklu arama, çoklu replace etme.
*/
$textArr = array(
"Hello my name php is php.",
"Hello my name php is php.",
"Hello my name php is php."
);
$pattern = array("/php/","/my/","/\./");
$resplace= array("Node JS","your","!");


$result = preg_replace($pattern,$resplace,$textArr);
echo '<pre>';
print_r($result);
?>
----------------------------------------------------------------------------
<?php

$text = "Lorem php, kısaca php,masaüstü php";
$pattern = "/php/";
/*
* pattern "/php/" verilir ise php kullanılan yerlerden metni bölüp array döner.
* php kelimesini metinden çıkarır.
*/
$result = preg_split($pattern,$text,$result);
echo '<pre>';
print_r($result);
/*
Array
(
[0] => Lorem
[1] => , kısaca
[2] => ,masaüstü
[3] =>
)
*/
?>
----------------------------------------------------------------------------
<?php
$langArr = array("Php","Node Js","React JS","Angular Js","JSP");
$pattern = "/Js/i";// i büyük küçük harf farketmez.

/*
* Arrayin içinde aranan değer var ise onları bulup indexleri ile array olarak verir.
*/

$result = preg_grep($pattern,$langArr);
echo '<pre>';
print_r($result);
?>
----------------------------------------------------------------------------
<?php
$text = "Lorem php? kısaca php + masaüstü php.";
$pattern = "/php/";
/*
* özel ifadeler metinde geçiyor ise, başlarına ters slash ekler.
*/
$result = preg_quote($text);
echo '<pre>';
print_r($result);
?>
----------------------------------------------------------------------------
<?php

$text = "ŞÖrem php? kısaca Php + masaüstü PHP.";

$pattern = "/şö/iu";//türkçe karakter sorunun çözümü u, küçük büyük harf duyarı olmasın i.

preg_match_all($pattern,$text,$result);
echo '<pre>';
print_r($result);
?>
----------------------------------------------------------------------------
<?php

$text = "ŞÖrem php? kısaca Php + masaüstü PHP.";

$pattern = "/^şö/iu";//türkçe karakter sorunun çözümü u, küçük büyük harf duyarı olmasın i.

preg_match_all($pattern,$text,$result);
echo '<pre>';
print_r($result);
?>
----------------------------------------------------------------------------
<?php

$text = "ŞÖrem php? kısaca Php + masaüstü PHP.";

$pattern = "/^şö/iu";//^ metnin en başında geçiyorsa sonuc döner.

preg_match($pattern,$text,$result);
echo '<pre>';
print_r($result);
?>
----------------------------------------------------------------------------
<?php

$text = "ŞÖrem php? kısaca Php + masaüstü PHP.";

$pattern = "/\.$/iu";

preg_match($pattern,$text,$result);//metnin en sonunda geçiyorsa sonuc döner.
echo '<pre>';
print_r($result);
?>
----------------------------------------------------------------------------
<?php

$text = "ŞÖrem php? kısaca Php + masaüstü PHP.";

$pattern = "/\bmas/iu"; // \b her bir kelimeyi kontrol eder varsa sonuc döner

preg_match($pattern,$text,$result);
echo '<pre>';
print_r($result);
?>
----------------------------------------------------------------------------
<?php

$text = "ŞÖrem php? kısaca Php1 + masaüstü PHP.";

$pattern = "/PHP(?=1)/iu"; // (?=1) php keimesinden sonra 1 ifadesi kulanılıyorsa sonuc döner.

preg_match_all($pattern,$text,$result);
echo '<pre>';
print_r($result);
?>
----------------------------------------------------------------------------
<?php

$text = "ŞÖrem php? kısaca Php1 + masaüstü PHP.";

$pattern = "/PHP(?!1)/iu";// (?!1) verilen kelimenin sonuna 1 geçmeyen ifadeyi aramak için kullanılır.

preg_match_all($pattern,$text,$result);
echo '<pre>';
print_r($result);
?>
----------------------------------------------------------------------------
<?php

$text = "ŞÖrem php? kısaca Php1 + masaüstü PHP.";

$pattern = "/PHP{1}/iu"; // {1} birkez tekrar ediyorsa getir.

preg_match_all($pattern,$text,$result);
echo '<pre>';
print_r($result);
?>
----------------------------------------------------------------------------
<?php

$text = "ŞÖrem php? kısaca Php1 + masaüstü PHP.";

$pattern = "/PHP+/iu";// + bir veya daha fazla tekrarlanıyorsa getir.

preg_match_all($pattern,$text,$result);
echo '<pre>';
print_r($result);
?>
----------------------------------------------------------------------------
<?php

$text = "ŞÖrem php? kısaca Php1 + masaüstü PHP.";

$pattern = "/1*/iu";// * hiç geçmesede geçsede hepsini alır.

preg_match_all($pattern,$text,$result);
echo '<pre>';
print_r($result);
?>
----------------------------------------------------------------------------
<?php

$text = "ŞÖrem php? kısaca Php1 + masaüstü PHP.";

$pattern = "/(p)(h)(p)/iu";// () hem php ara hemde tek tek harfleri ara.

preg_match_all($pattern,$text,$result);
echo '<pre>';
print_r($result);
?>
----------------------------------------------------------------------------
<?php

$text = "ŞÖrem react ? reactjs Php1 + node asp. nodejs";

$pattern = "/(react|node)js/iu"; //react veya node varsa getir. veya reactjs ,nodejs varsa getirir.

preg_match_all($pattern,$text,$result);
echo '<pre>';
print_r($result);
?>
----------------------------------------------------------------------------
<?php

$text = "ŞÖrem react ? reactjs Php1 + node asp. nodejs";

$pattern = "/node(?:js)/iu"; //alt grup oluşturmak için, node ve js geçen ifadeyi getirir.

preg_match_all($pattern,$text,$result);
echo '<pre>';
print_r($result);
?>
----------------------------------------------------------------------------
<?php

$text = "ŞÖrem react ? reactjs Php1 + node asp. nodejs";

$pattern = "/[php]/iu"; // [php] p,h,p geçen tüm ifadeleri getir.

preg_match_all($pattern,$text,$result);
echo '<pre>';
print_r($result);
?>
----------------------------------------------------------------------------
<?php

$text = "ŞÖrem react ? reactjs Php1 + node asp. nodejs";

$pattern = "/[a-zA-Z0-99ığüşöçİĞÜLÖÇ]/u";//a dan zye tüm küçük,büyük karakterleri ve rakamları da getir. türkçe karakterleri de getir.

preg_match_all($pattern,$text,$result);
echo '<pre>';
print_r($result);
?>
----------------------------------------------------------------------------
<?php

$text = "ŞÖrem react ? reactjs Php1 + node asp. nodejs";

$pattern = "/[^php]/u"; //başına şabka bırakırsak bunları getirme deriz, bunlar dışındakileri getirir.

preg_match_all($pattern,$text,$result);
echo '<pre>';
print_r($result);
?>
----------------------------------------------------------------------------
<?php

$text = "ŞÖrem react ? reactjs Php1 + node asp.nodejs";

$pattern = "/\S/iu";// \S [^ ] boşluk dışındakileri getirir.

preg_match_all($pattern,$text,$result);
echo '<pre>';
print_r($result);
?>
----------------------------------------------------------------------------
<?php

$text = '<p style="color:red">Hello Word</p>
ŞÖrem react ? reactjs Php1 + node asp.
<p style="color:red">Hello Word</p>';

/* Html taglarını temizleme
< işareti var ise,
/? işareti yok veya var ise,
[^>]+ işareti haricindekileri herşeyi sil
> işaretini sil

*/
$pattern = "/<\/?[^>]+>/iu";
$replace = "";

$result = preg_filter($pattern,$replace,$text);
echo '<pre>';
print_r($result);
?>