Arama butonu
Bu konudaki kullanıcılar: 1 misafir
3
Cevap
799
Tıklama
0
Öne Çıkarma
preg_replace içinde çıkarma
S
8 yıl
Çavuş
Konu Sahibi

Arkadaşlar selamlar. Şöyle bir sorunum var.

$text = "Bu bir cümledir.(Resim 1) Bu ikinci cümledir.(Resim 2)";

$yenitext = preg_replace("/\(Resim ([0-9]+)\)/", "<a data-test="test" rel="nofollow" style="word-wrap: break-word; text-decoration: underline;" target="_blank" onclick="return dhExternalLinkRedirect(this)" href="/ExternalLinkRedirect?module=pgdcode&messageId=130974707&url=#" onclick="$('.popup-gallery').magnificPopup('open', $1-1);" data-href="#" onclick="$('.popup-gallery').magnificPopup('open', $1-1);">$0</a>", $text);


Yukarıdaki kodda

Resim 1 yerine <a data-test="test" rel="nofollow" style="word-wrap: break-word; text-decoration: underline;" target="_blank" onclick="return dhExternalLinkRedirect(this)" href="/ExternalLinkRedirect?module=pgdcode&messageId=130974707&url=#" onclick="$('.popup-gallery').magnificPopup('open', 0);" data-href="#" onclick="$('.popup-gallery').magnificPopup('open', 0);">Resim 1</a>,
Resim 2 yerine <a data-test="test" rel="nofollow" style="word-wrap: break-word; text-decoration: underline;" target="_blank" onclick="return dhExternalLinkRedirect(this)" href="/ExternalLinkRedirect?module=pgdcode&messageId=130974707&url=#" onclick="$('.popup-gallery').magnificPopup('open', 1);" data-href="#" onclick="$('.popup-gallery').magnificPopup('open', 1);">Resim 2</a> elde etmek istiyorum

ancak mesela
Resim 2 yerine <a data-test="test" rel="nofollow" style="word-wrap: break-word; text-decoration: underline;" target="_blank" onclick="return dhExternalLinkRedirect(this)" href="/ExternalLinkRedirect?module=pgdcode&messageId=130974707&url=#" onclick="$('.popup-gallery').magnificPopup('open', 2-1);" data-href="#" onclick="$('.popup-gallery').magnificPopup('open', 2-1);">Resim 2</a> elde ediyorum.

Burda 1 çıkarma işlemini nasıl yaparım. Ustalar bakabilir mi? Teşekkürler.





< Bu mesaj bu kişi tarafından değiştirildi stbolen -- 20 Ocak 2018; 23:56:23 >

R
8 yıl
Teğmen

http://php.net/manual/en/function.preg-replace-callback.php

Preg replace callback ile o metini degiskenler ile bir fonksiyon içinde üretebilirsin.



< Bu ileti mobil sürüm kullanılarak atıldı >

T
8 yıl
Yarbay

Callback ile çözüm örneği. Örnekte (Resim 1) ifadesindeki parantezler RegExp 'teki belirteç parantezleri ile karışacağı için RegExp haricinde str_replace ile kaldırdım yoksa RegExp ifadesini düzenleyip RegExp içinde de halledilebilir.

quote:

<?php

function link_ekle($eslesmeler)

{
$parantezler = array("(",")"); //Bu kısım RegExp içinde halledilebilir.
$tmp="<a href=\"#\" onclick=\"$('.popup-gallery').magnificPopup('open',"
. ($eslesmeler[1]-1)
. ");\">"
. str_replace($parantezler, '', $eslesmeler[0])
. "</a>\n";
return $tmp;
}

$metin = "Bu bir cumledir.(Resim 1) Bu ikinci cumledir.(Resim 2)";

echo preg_replace_callback("|\(Resim ([0-9]+)\)|", "link_ekle", $metin);

?>


Deneme anından SS:

< Resime gitmek için tıklayın >





< Bu mesaj bu kişi tarafından değiştirildi Tuğkan-0153 -- 21 Ocak 2018; 14:56:33 >

< Bu ileti mini sürüm kullanılarak atıldı >

DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.