function only_eng($in){
$n=0;
$eng_pattern = "/^[_-a-z0-9]/i";
if (gettype($in) == "array"){
foreach( $in as $key => $in_ ) {
if (preg_match ( $eng_pattern, $in_ ) ){
$in[$n] = $in_;
$n++;
}
}
} else {
if (preg_match ($eng_pattern, $in ) ){
} else {
$in = 0;
}
}
return $in;
}
написал функцию но почем уто не работает она ... в частности она берет и китайские и русские ...
Нужно чтоб брал только англ буквы, любого регистра, знак подчеркивания, тире и все. Остальное чтоб не брал
Спустя 14 минут, 26 секунд (25.11.2011 - 23:13) I++ написал(а):
Есть замечательна программа:
Называет Regex Coach, можно проверять регулярное выражение в реальном времени и даже пошагово.
http://weitz.de/regex-coach/

может так?
$eng_pattern = "/^[\_\-a-z0-9]+$/i";
Свернутый текст
Называет Regex Coach, можно проверять регулярное выражение в реальном времени и даже пошагово.
http://weitz.de/regex-coach/

может так?
$eng_pattern = "/^[\_\-a-z0-9]+$/i";
Спустя 6 минут, 43 секунды (25.11.2011 - 23:20) sx000 написал(а):
не рабеотае такой вариант вообще большую часть в нули превращает, for running The Regex Coach under Wine. прога не очень по вайном работает на маке
но все равно спасибо

Спустя 7 минут, 23 секунды (25.11.2011 - 23:27) sx000 написал(а):
функция смотрит если массив то тогда начинает чистить его от шлака который содержит еще что то кроме англ букв любого регистра, цифр, тире и знака подчеркивания - создавая при этом новый массив, но уже без мусорных строк.
Вторая часть по сути должна смотреть если это значение просто а не массив, то смотрим если есть мусор в строке то приравниванием ее нулю вот и все.
Вторая часть по сути должна смотреть если это значение просто а не массив, то смотрим если есть мусор в строке то приравниванием ее нулю вот и все.
Спустя 2 минуты, 50 секунд (25.11.2011 - 23:30) I++ написал(а):
# return false|array|string
function only_eng($data)
{
static $eng_pattern = '/^[\_\-a-z0-9]+$/i';
$ret_arr = false;
if(gettype($data) == 'array')
{
foreach($data as $val)
{
if(preg_match($eng_pattern, $val))
{
$ret_arr[] = $val;
}
}
if(!empty($ret_arr))
return $ret_arr;
else
return false;
}
else
{
if(!preg_match($eng_pattern, $data))
return false;
}
return $data;
}
Жаль PHP не Pown, pown бы уже излил реки недовольства на ваши любимые пробелы вместо табуляции.
P.S. попробуем ужать код.
Спустя 8 минут, 47 секунд (25.11.2011 - 23:39) sx000 написал(а):
нет чистит все под чистую
, скажем значение для него Bul это return false;

Спустя 14 минут, 57 секунд (25.11.2011 - 23:54) I++ написал(а):
Примеры того чего не отфильтровывает можно?
Эта регулярка проверяет:-_a-z0-9 (не зависимо от регистра) Если значения отличаются, он их не возвращает, в виде массива или строки.
Эта регулярка проверяет:-_a-z0-9 (не зависимо от регистра) Если значения отличаются, он их не возвращает, в виде массива или строки.
Спустя 6 минут, 20 секунд (26.11.2011 - 00:00) sx000 написал(а):
все ок спасибо я пробел забыл вписать
