Moin!
Der Unterschied ist historisch und sehr marginal.
strtr() überträgt einzelne Zeichen von Zeichenketten in andere:
strtr('äste, böller und büsche', 'äöü', 'aou');
Das kann str_replace() nicht.
Hängt davon ab, was man unter "können" versteht.
str_replace(array('ä','ö','ü'), array('a','o','u'), 'äste, böller und büsche')
Liefert dasselbe Ergebnis.
Pluspunkt: Das funktioniert sogar noch, wenn man UTF-8 benutzt. strtr() scheitert dort in der obigen Form.
Die Alternativform kriegt es allerdings wieder hin:
strtr('äste, böller und büsche', array('ä' => 'a', 'ö' => 'o', 'ü' => 'u'))
- Sven Rautenberg