سلام و روز خوش
1- خب این خروجی درسته:
نگاه میکنه به آغاز و پایان s1
در آغاز حرف m هست که در پترن هست پس پاک میشه (در ضمن پترن یک حرف d اضافی داره که اثری نداره)
در پایان حرف e هست که در پترن نیست - کاری انجام نمیده
حالا عبارت شده `ohammad alizade`
که آغاز و پایانش در پترن نیست و تابع کارش تموم میشه.
2- حالا اگر پترن رو 'hmoae' بگذارین:
در پایان فقط حرف e در پترن هست
ولی در آغاز یکی یکی m بعد o بعد h بعد a بعد هر دو m و بعد a پاک میشه
تا به d میرسه که در پترن نیست و کار تمومه: نتیجه میشه `d alizad`
3- اگر هدف برداشتن یک سری حروف هست
جوری که به `ohlie` برسین باید str_replace استفاده کنین:
str_replace(array('m','a','d','z',' '), '', $s1)
یا اینجوری بنویسن
str_replace(str_split('madz '), '', $s1)
4- وقتی کد php رو دیباگ میکنین یا کلا برای تست و ...
از echo استفاده نکنین - بخصوص برای string ،
از var_dump استفاده کنین که دقیقا هم اندازه رو برمیگردونه،
هم در " میذاره که میتونین فاصله های آغاز و پایانش رو ببینین.