Şimdi Ara

preg_replace içinde çıkarma

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
4
Cevap
0
Favori
765
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • 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 Resim 1,
    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 >







  • 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ı >
  • RegExp sadece desen bulup değiştirir; içinde aritmetik işlemler yapamazsın o yüzden arkadaşın bahsettiği gibi işlemi bir callback fonksiyon içinde yapabilirsin.

    < Bu ileti mini sürüm kullanılarak atıldı >
  • 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:

    preg_replace içinde çıkarma



    < 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ı >




  • Yapay Zeka’dan İlgili Konular
    Daha Fazla Göster
    
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.