Понадобилось добавить на городскую доску частных объявлений фильтр запрещающий некоторые номера. Решение получилось такое:
function f_ltrim($v) { return ltrim($v, '38'); } function check_phone($text1){ $phone_black_list = array_map('trim', file("ban_phone_list.txt")); preg_match_all('/\+?[0-9][\d-\()-\s+]{5,15}[1-9]/', $text1, $matches); $numbers = preg_replace('/[^0-9]/', '', $matches[0]); $numbers = array_map('f_ltrim', $numbers); // var_dump($phone_black_list); // var_dump($numbers); $c = 0; foreach ($phone_black_list as $v) if (in_array($v, $numbers)) $c++; // echo "Результат: ".$c; // if($c > 0) echo "BAN"; return $c; }
и делаем проверку в нужном месте в коде:
if(check_phone($ads_text) > 0) { echo"<script>alert('Данный номер телефона добавлен в черный список и запрещен к публикации!')</script>"; unset($ads_text); }
далее рядом с скриптом создаем текстовый файл ban_phone_list.txt в который заносим список запрещенных к публикации номеров телефонов. формат - каждый номер с новой строки. функция сделана под украинских операторов мобильной связи, т.ч. из телефонов в начале вырезается код +38