Trouble PHP str_replace ve preg_replace ile çalışma

0 Cevap php

I am having trouble with string manipulation in php. I am writing a function that with take a string parameter that has words separated with either " " or "_". I want the function to remove all non alphabetic characters and return the words separated with a "-". This is what I have so far:

function cleanCategoryForUrl($strCategory){
    $newCategory = str_replace('_', '-', $strCategory); //First replacement
    echo ($newCategory);
    $newCategory = str_replace(' ', '-', $newCategory); //Second replacement
    echo ($newCategory);
    $newCategory = preg_replace('/[^a-z-]/i', '', $strCategory); //Final replacement
    echo ($newCategory);
    return $newCategory;
}

Yerine "yorum" veya "_" - "," birinci ve ikinci değiştirmeleri ile ayrılmış kelime yapmak alacak. "-" Nihai yedek alfabetik veya olmayan tüm karakterlerin kırmızı alacak.

Ben kodu sınamak Ama, ben son değişiminden sonra beklenmeyen sonuçlar alabilirsiniz.

"Home_Health" bir girişi ile ben bu baskılı olsun:

Home-Health
Home-Health
HomeHealth

Beklendiği gibi ilk iki çıkış vardır, ancak üçüncü bir kaldırıldı "-" (böyle olmaması gereken). I http://gskinner.com/RegExr/ üzerinde test zaman ben bir şey benim regex deseni ile yanlış, ama o sözler cezası sanıyorum. Ben regex kullanarak yeni duyuyorum ve yanlış ne olduğunu çözemiyorum. Lütfen Yardım

0 Cevap