"Enter"a basıp içeriğe geçin

PHP ile iki etiketin arasındaki veriyi almak

Selamlar,

Bu yazımda sizlere iki etiketin arasındaki yazıyı PHP kullanarak nasıl çekebileceğinizi anlatacağım.

Bu işlemi yapabilmek için bir fonksiyon yazdım ve yazının ilerleyen kısımlarında fonksiyonu, çalışma prensibini ve size çalışan bir örnek göstererek paylaşacağım.

Fonksiyonun çalışma prensibi:
Bu fonksiyon PHP’de bulunan preg_match_all fonksiyonu ile destekleniyor. Hatta bu neredeyse tüm işi yapıyor. preg_match_all fonksiyonu ile verinizden sizin belirttiğiniz etiketlerin arasındaki veriyi alıyoruz ve bu aramayı yaparken regex formunda yapmamız gerekiyor.

Fonksiyonumuza gelecek olursak:

function getBetween($subject, $firstTag, $secondTag)
{

$regex = '#'.$firstTag.'(.*?)'.$secondTag.'#';

preg_match_all($regex, str_replace(PHP_EOL, "|-**-LINEBREAK-**-|", $subject), $codeArray);
unset($regex);

return(trim(str_replace("|-**-LINEBREAK-**-|", "<br>", $codeArray[1][0])));

}

Fonksiyonun kullanımında $subject değişkenine içerisinde etiketlerin bulunduğu bir string atamalısınız. Yani buna bir samanlık diyebiliriz.

$firstTag ve $secondTag değişkenlerimiz de bizim sırasıyla açılış ve kapanış etiketlerimizdir.

Şimdi pekiştirmek için bir örnek yazalım ve anlamadığımız yerleri de anlayalım.

<?php

/*

	İki etiketin arasındaki yazıyı almak

	Fonksiyonun kullanımı: getBetween(ÖZNE, BAŞLANGIÇ ETİKETİ, BİTİŞ ETİKETİ);

	ÖRNEK KULLANIM AŞAĞIDADIR.

	Geliştirici: https://benegedeniz.com

*/

function getBetween($subject, $firstTag, $secondTag) 
{

	$regex = '#'.$firstTag.'(.*?)'.$secondTag.'#';
    
    preg_match_all($regex, str_replace(PHP_EOL, "|-**-LINEBREAK-**-|", $subject), $codeArray);
    unset($regex);

    return(trim(str_replace("|-**-LINEBREAK-**-|", "<br>", $codeArray[1][0])));

}
// Fonksiyonumuzu dosyamıza ekledik.

$code = "
lalalala
:benegedeniz:
Merhaba.
Bu ekranda yazması gereken yazıdır.
:/benegedeniz:
lalala";
// İçerisinde etiketlerimizin bulunduğu metni "code" değişkenine atadık

echo getBetween($code, ":benegedeniz:", ":/benegedeniz:"); // Fonksiyonumuzu çalıştırdık ve döndürdüğü veriyi yazdırdık.

// Çıktı: Merhaba. Bu ekranda yazması gereken yazıdır.

?>

Bu yazımdan bu kadar. Herkese iyi çalışmalar.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir