CodeIgniter cart class Арабское регулярное выражение

Cart.php в системе / библиотеке имеет определение шаблона регулярного выражения, которое не позволяет мне использовать арабский язык для значений имени. Это работает:

$data = array( 'id' => "221212", 'qty' => 1, 'price' => 21.2, 'name' => 'dasdasdas' ); 

Но это терпит неудачу из-за арабского в имени:

 $data = array( 'id' => "221212", 'qty' => 1, 'price' => 21.2, 'name' => 'عمر' ); 

Теперь в классе Cart.php я нашел следующее:

 // These are the regular expression rules that we use to validate the product ID and product name var $product_id_rules = '\.a-z0-9_-'; // alpha-numeric, dashes, underscores, or periods var $product_name_rules = '\.\:\-_a-z0-9'; // alphanumeric, dashes, underscores, colons or periods 

Я занимаюсь правилами имени. Ясно, что это проблема, потому что позже есть проверка:

 if ( ! preg_match("/^[".$this->product_name_rules."]+$/i", $items['name'])) { log_message('error', 'An invalid name was submitted as the product name: '.$items['name'].' The name can only contain alpha-numeric characters, dashes, underscores, colons, and spaces'); return FALSE; } 

Как заменить строку правил имен для работы с арабским? У меня очень плохой фон с регулярным выражением, поэтому, пожалуйста, помогите.

Благодаря!

введите описание изображения здесь

Если вы хотите принимать другие символы, вам необходимо изменить $ this-> cart-> product_name_rules после загрузки корзины.

 $this->load->library('cart'); $this->cart->product_name_rules = '\.a-z0-9_-\p{Arabic}'; 

Он будет работать, если вы измените свой шаблон $product_name_rules (partial) следующим образом:

 var $product_name_rules = '\.\:\-_a-z0-9\p{Arabic}'; 

… затем добавьте модификатор /u к шаблону, фактически используемому preg_match :

 if ( ! preg_match("/^[".$this->product_name_rules."]+$/iu", $items['name'])) { ... } 

Цитирование документа :

u (PCRE_UTF8)

Этот модификатор включает дополнительные функции PCRE, которые несовместимы с Perl. Строки шаблонов рассматриваются как UTF-8. Этот модификатор доступен с PHP 4.1.0 или выше в Unix и с PHP 4.2.3 на win32. Срок действия шаблона UTF-8 проверяется с PHP 4.3.5.

Измените product_name на следующее, что позволяет все:

 var $product_name_rules = '^.'