İyinet'e Hoşgeldiniz!

Türkiye'nin En Eski Webmaster Forum'una Hemen Kayıt Olun!

Kayıt Ol!

preg_replace

WhiteKey

0
İyinet Üyesi
Katılım
13 Aralık 2004
Mesajlar
400
Reaction score
0
Konum
istanbul
PHP:
$pat="/s-(.*?)>(.*?)<(.*?)\|(.*?)>/";
$yeni=preg_replace($pat,'s-$1>$2<$3|$4>', $icerik);
print_r(nl2br(htmlspecialchars($yeni)));

preg_replace komutunda ilk defa kullanmak istediğim bir komut var $4 e veya diğer şekliyle \\4 e denk gelen sayı üzerinde matematiksel işlem yapmak istiyorumatıyorum $4 e gelen sayı 10 ve ben bunu 6 ile toplamak istiyorum değişikliklerin hepsinde geçerli olmasını sağlamam lazım..

bu olayı birkaç farklı yolla yapabilirim ama hepsinde bir döngüye almam gerekiyor bu işlem çok yapılacağı için performansı alıp götürmesin diyorum :)
ama bu tarz işler için tek bir komutun eksikliğini çekiyorum açıkcası bendemi sorun var diye php manual vs. heryere baktım ama cevabı yok.

PHP:
$yeni=preg_replace($pat,'s-$1>$2<\3|'.intval("$4").'>', $icerik);
// bu tarz şeylerde denedim ama sayıya bile dönüşmüyor bir türlü

Bu tarz şeyler için matematiksel işlem yapabileceğim tek komut bilen varmıdır yoksa phpde eksiklik diyebilirmiyiz.
 
N

necro

Misafir
regex içine fonksiyon eklemek için "e" kullanacaksın

Örnek
PHP:
$mesaj = preg_replace("'\(bkz: (.*)\)'Uei","'(bkz: <a href='.seo('\\1').'.html title=\"\\1\">\\1</a>)'",$mesaj);
 

WhiteKey

0
İyinet Üyesi
Katılım
13 Aralık 2004
Mesajlar
400
Reaction score
0
Konum
istanbul
tamamdır oldu teşekkür ederim ;)
e eklenince fonksyon olarakda eklemeye izin veriyormuş normal php fonksiyonlarınada izin veriyormuş.

PHP:
$yeni = preg_replace("'s-(.*?)>(.*?)<(.*?)\|(.*?)>'e","'s-\\1>\\2<\\3|'.intval('\\4'*1.15).'>'",$icerik);

php manualde de aşağıdaki şekilde örnek vermişler aslında deneye deneye stres yaptık görmedik demekki :D
PHP:
<?php
preg_replace("/(<\/?)(\w+)([^>]*>)/e", 
             "'\\1'.strtoupper('\\2').'\\3'", 
             $html_body);
?>
 

Türkiye’nin ilk webmaster forum sitesi iyinet.com'da forum üyeleri tarafından yapılan tüm paylaşımlardan; Türk Ceza Kanunu’nun 20. Maddesinin, 5651 Sayılı Kanununun 4. maddesinin 2. fıkrasına göre, paylaşım yapan üyeler sorumludur.

Backlink ve Tanıtım Yazısı için iletişime geçmek için Skype Adresimiz: .cid.1580508955483fe5

Üst