-1

How to check only persian character in string by php?

see below

string valid : persian character

string invalid : except persian character(contain: latin && {&*%$ ,....})
mrreza
  • 71
  • 10
  • I Persian known as something else? Perhaps one these languages, http://php.net/manual/en/regexp.reference.unicode.php? Can you add samples of a valid and invalid string? – chris85 Oct 14 '17 at 20:22
  • valid : خلیج همیشه فارس ||| invalid : persian gulf ||| invalid : خلیج همیشگی persian ||| invalid : خلیج همیشگی فارس * – mrreza Oct 14 '17 at 20:26

1 Answers1

0
$alphabet = ['الف', 'بِ', 'پِ', '...']; # create an array that contains only Persian characters
$alphabet = array_flip($alphabet);    # reverse the array (key <=> value)

$chars = preg_split('/(?<!^)(?!$)/u', $string); # use this regexp to transform string intro array of chars

foreach ($chars as $char)
{
    if (!isset($alphabet[$char])) # use isset to check the char in the aplhabet
    {
        # it's not Persian character!
    }
}
user1597430
  • 1,138
  • 1
  • 7
  • 14
  • If the OP has all the persian characters a character class and `preg_match` would be much easier. e.g. https://regex101.com/r/uHrtNU/1/ – chris85 Oct 14 '17 at 20:47
  • chris85 thanks .. is work. very good. خلیج همیشگی فارس – mrreza Oct 14 '17 at 21:02