PHP ile Manuel Değişken Tanımlama
Merhaba PT.
Text içeriğin içinde bizim tanımlayacağımız örneğin {{ başlık }}
şeklinde yazıların yerine içerik bastırma işlemi yapmak istiyorum.
Bunu PHP ile yapabilir miyim? Yapamazsam jQuery ile yapabilir miyim? :)
Örneğin;
<!-- Normal metin içinde işaretlenmiş yer. -->
<div>
Bu alanın içinde {{baslik}} için bir soru var.
</div>
// İşaretlenmiş yerle değişecek içerik. (HTML vb. içerik de bastırabilmemiz lazım.)
$baslik = '<strong>Protürk'ün kıymetli üyeleri</strong>';
<!-- İstenilen sonuç. -->
<div>
Bu alanın içinde <strong>Protürk'ün kıymetli üyeleri</strong> için bir soru var.
</div>
Süslü parentezleri örnek olarak verdim. {{- baslik -}}
şeklinde de olabilir.
Aynı sayfada birden çok işlemi yapabilmemiz lazım.
Mantığı anlatabilmişimdir umarım. Yardımlarınızı bekliyorum. :)
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (2)
str_replace()
ile replace edebilirsiniz:
<?php
$text = 'Bu alanın içinde {{baslik}} için bir soru var.';
function replaceTags($text) {
return str_replace(
['{{baslik}}'],
['<strong>Protürk\'ün kıymetli üyeleri</strong>'],
$text
);
}
?>
<div>
<?=replaceTags($text)?>
</div>
ama sen direk html'e mudahale edeyim bunu php degiskenine almayayim diyorsan output buffer metodlari isine yarayabilir. Yani:
<?php
function replaceTags($text) {
return str_replace(
['{{baslik}}'],
['<strong>Protürk\'ün kıymetli üyeleri</strong>'],
$text
);
}
ob_start();
?>
<div>
Bu alanın içinde {{baslik}} için bir soru var.
</div>
<?php
$output = ob_get_clean();
echo replaceTags($output);
?>
@tayfunerbilen Hocam str_replace()
ile yapıyordum daha önce. Asıl amacım sayfada {{item}}
içinde geçen başlıkları otomatik olarak algılatıp aynı isimdeki değişkenleri oralara bastırmak. İkinci örnekteki istediğime yakın bir çözüm. ob_start olayını araştırmam gerek sanırım biraz. Ben bunu config.php'ye ekliyorum ne işe yaradığını bilmeden. :) Oradan her sayfanın başında başlatıyor.
Udemy kursunuzda 156. PHP/Ajax Daha Fazlasını Göster Uygulaması
dersinizde de kullanmıştınız bunu.