5

I am no PHP expert. I am looking for the PHP equivalent of isLetter() in Java, but I can't find it. Does it exist?

I need to extract letters from a given string and make them lower case, for example: "Ap.ér4i5T i6f;" should give "apéritif'. So, yes, there are accentuated characters in my strings.

Jérôme Verstrynge
  • 57,710
  • 92
  • 283
  • 453
  • `strtolower` will give you the lower-case string, but you'll likely need a regex to parse the input string and just get the alpha characters from it. – Brian Driscoll Mar 15 '12 at 14:23

4 Answers4

7

ctype_alpha().

Oliver Charlesworth
  • 267,707
  • 33
  • 569
  • 680
  • 2
    Don't forget to use `setlocale()` because in the default C locale, only [a-zA-Z] will be considered as alphabetic characters (no accentuated characters) – SirDarius Mar 15 '12 at 14:25
2

In addition to regex / preg_replace, you can also use strtoupper($string) and strtolower($string), if you need to universally upper-case a string. As Konrad mentioned, preg_replace is probably your best bet though.

http://php.net/manual/en/function.strtoupper.php

http://www.php.net/manual/en/function.strtolower.php

DACrosby
  • 11,116
  • 3
  • 39
  • 51
1

In PHP (and in Java) you wouldn’t use isLetter to implement it, you’d rather replace all characters that aren’t letters using a regular expression:

echo preg_replace('/\P{L}/', '', input);

Loop up the documentation of preg_replace and the regex pattern syntax desciption, in particular the relevant Unicode character classes.

Konrad Rudolph
  • 530,221
  • 131
  • 937
  • 1,214
0

You could probably use the php-slugs source code, with appropriate modifications.

Cacovsky
  • 2,536
  • 3
  • 23
  • 27