2012-11-24 13 views
21

Obecnie mam ten wiersz w moim kodu:Wymień Dash z miejscem w PHP

<div><a href="http://www.envisionforce.com/local/'.$row[website].'-seo-services">'.ucwords($row[website]).'</a></div> 

I będzie wyświetlać nazwę miasta, takie jak ten:

Puiol-del-piu 

Ale to, co potrzebne jest dla niego wyświetlanie bez kresek i tak, że ucwords będzie pierwszą literę każdego słowa, takie jak ten:

Puiol Del Piu 

byłoby wspaniale jeśli kod może być ograniczony do tej jednej linii, ponieważ mam dużo więcej rzeczy z innymi na stronie.

+0

' "jednej linii"' funkcje używać! – phant0m

+0

To wyrażenie regularne wykonuje zadanie. $ string = preg_replace ("/ [\ - \] /", "", $ string); – Darkeden

+2

Nie ma potrzeby użycia polecenia regex - str_replace wykona zadanie za mniej pamięci, procesora i czas, który upłynął. – symcbean

Odpowiedz

36

Ten str_replace spełnia swoje zadanie:

$string = str_replace("-", " ", $string); 

Ponadto, można zrobić to jako funkcja.

function replace_dashes($string) { 
    $string = str_replace("-", " ", $string); 
    return $string; 
} 

Wtedy to nazwać:

$varcity = replace_dashes($row[website]); 
<div><a href="http://www.envisionforce.com/local/'.$row[website].'-seo-services">'.ucwords($varcity).'</a></div> 
+0

Pierwsze dwa paramy w twoim przykładzie są zamieniane z tego, czym powinny być. Łatwa naprawa! Dzięki za przykłady. http://php.net/manual/en/function.str-replace.php –

+1

@SteveMeisner, w rzeczywistości nie. Chce pozbyć się "kresek", zastępując je spacjami. Tak właśnie działa funkcja. – Darkeden

+0

Darkeden - masz rację! Czytałem to naprzeciwko (prawdopodobnie dlatego, że próbowałem zastąpić spacje myślnikami ...). Dzięki! –