- Hatayı gidermek için preg_replace_callback işlevini kullanmanızı öneririm. Bu işlev, düzenli ifadeyle eşleşen her eşleşme için bir geri çağırma işlevini çalıştırır. Bu, eşleşmeleri dönüştürmek için özel bir işlev tanımlamanızı sağlar.
- $bbcode ve $html dizilerinizdeki anahtar değerlerin eşleşmesini sağlamak için => operatörünü kullanmanız gerekiyor. Ancak, kodunuzda bazı boşluklarla birlikte yanlışlıkla ekstra boşluk bırakmışsınız.
function bbCode_iletisim($text, $val) {
// BBcode Tanımlamaları
$bbcode = array(
'~\{gonderenad}~s',
'~\{eposta}~s',
'~\{gonderenip}~s',
'~\{mesaj}~s',
'~\{taleptur}~s'
);
// HTML Etiketleri
$html = array(
(isset($val["gonderenad"]) ? $val["gonderenad"] : ''),
(isset($val["eposta"]) ? $val["eposta"] : ''),
(isset($val["gonderenip"]) ? $val["gonderenip"] : ''),
(isset($val["mesaj"]) ? $val["mesaj"] : ''),
(isset($val["taleptur"]) ? $val["taleptur"] : '')
);
// BBCode Çeviriyoruz
return preg_replace_callback($bbcode, function($matches) use ($html) {
return $html[array_search($matches[0], $bbcode)];
}, $text);
}
var_dump(bbCode_iletisim("
Merhaba {gonderenad} <br>Bizimle {taleptur} talebiniz hakkında iletişime geçtiğiniz için teşekkür ederiz.<br>
Adınız Soyadınız:{gonderenad}<br>IP adresi:{gonderenip}<br>Talep Türü:{taleptur}<br>Eposta Adresi:{eposta}<br>Mesajınız:{mesaj}", array("gonderenad" => "aa", "eposta" => "aa@aa.com.tr", "gonderenip" => "127.0.0.1", "taleptur" => "Oneri", "mesaj" => "Çözümsüz çözüm")));gpt