PHP: is there an isLetter() function or equivalent

2019-06-20 16:52发布

问题:

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.

回答1:

ctype_alpha().



回答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



回答3:

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.



回答4:

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