v2.5.2
Giriş yap

Html koda php ile önüne ekleme yapmak

goxaria
475 defa görüntülendi

Merhabalar,
örnek veriyorum şöyle bir html kodum var ve bu html kodu phpmyadmindeki verilerden geliyor. O yüzden doğrudan ona müdahalem yok.

    <img src="gorsel.png">

Ben buna str replace mantığıyla aşağıdaki gibi olacak şekilde önüne ve sonuna kod eklemek istiyorum

    <a href="degisken.png"><img src="gorsel.png"></a>

Görsel verisi dbden geldiği için birden çok görsel olabilir o yüzden sadece 1 yeri değiştirmek de yeterli olmayacak global bir değiştirene ihtiyacım var...

Nasıl yapabilirim? Şimdiden herkese teşekkürler.

Cevap yaz
Cevaplar (5)
abdullahx
1139 gün önce

Peki hocam çıktı tamponlama ile beraber preg_match veya preg_match_all kullanmayı denediniz mi. Sayfadaki tüm görselleri bulup bunlara müdahale edebilirsiniz. Kodunuzun net yapısını kavrayamadığım için sadece kabataslak öneride bulunabiliyorum

goxaria
1140 gün önce

@frexx

Cevabınız için teşekkürler hocam. Zannedersem yeterince kendimi izah edemedim.

Düzeltmem gereken veriye doğrudan müdahalem yok php içine mysqlden veri çekerek geliyor yani laravel kullandığım için {{$ad['data']->data_content}} şeklinde düşünebiliriz.

Zannedersem bu veriyi DOM'da düzenlemek için javascript kullanmamız gerekiyor... Ancak PHP'de de acaba str replace ile yapılabilir mi diye sormuştum...

frexx
1140 gün önce

Tüm resimlere bir id yada class ata css ile resim ver. Yada bunun için databaseden çektiğin resim kodunun başına resim ekle.

goxaria
1140 gün önce

@abdullahx

Merhaba hocam yanıtınız için teşekkürler. Ancak dediğim gibi return olacak kod phpmyadminden geliyor o yözden sabit bir img kodu değil yanı içinde paragraf da var. Bildiğiniz html olarak geliyor.

Bu şekilde sadece belirlenmiş kalıplar değişecek zannedersem benim ise bir sayfadaki tüm resimlerin önüne ve sonuna kod eklemem gerekiyor.

abdullahx
1140 gün önce

Fonksiyon yazacaksınız.

function _x($link, $img): string
{
return '<a href="'.$link.'" >'.$img.'</a>';
}

echo _x('degisken.png', '<img src="gorsel.png">');