preg_match ليست للاستبدال ..
ستعرفها ان كن تعرف preg_replace
كلها تعمل على Regular Expressions او الصيغ الـــ مدري والله وشسمها :S
فكرتها تكون على تحدبد اشياء مختلفة تتفق في اشياء معينة
مثلا
فقال لي : اذهب هناك ا.هـ
فقال لي : تعال هنا ا.هـ
نريد ان نعرف ماذا قال له ؟
العامل المشترك هنا هو
: (نص لانعرفه) ا.هـ
فيكون الكود
كود PHP:
$text = "فقال لي : اذهب هناك ا.هـ
فقال لي : تعال هنا ا.هـ ";
preg_match("/(:)(.*)(ا.هـ)/",$text,$m);
print_r($m);
/*
Outputs
Array
(
[0] => : اذهب هناك ا.هـ
[1] => :
[2] => اذهب هناك
[3] => ا.هـ
)
*/
تلاحظ
$m[2] هو مانحبث عنه ..
لكن هنا التقط جمله واحده ماذا لو اردناها كلها ...
عموما انت طلبت ..
text_demo_ any_thing.zip
نريد تغيير text
واخراج المتغير بهذه القيمه
mmm_demo_any_thing.zip
هذا ياخوي بدون Preg مجرد str_replace
كود PHP:
$text = str_replace("text","mmm",$text);
اما لوتقصد فيه text اخرى في النص ولا نبغى نعدلها
في هالحالة نستخدم preg_replace
$text = "text_demo_ any_thing.zip";
$text = preg_replace("/(text)(.*)(.zip)/","mmm$2$3",$text );