|
|
|
|
|
для: cheops
(27.12.2010 в 11:32)
| | Спасибо, буду разбираться! | |
|
|
|
|
|
|
|
для: starpom
(26.12.2010 в 19:40)
| | >Можете и так, видать гиблая это затея, ну а хотя бы телефоны выбрать и поудалять тире и
>пробелы (если они есть )между цифрами реально?
Можно начать отталкиваться от следующего скрипта
<?php
$str = "541-87-42; 067-205-47-01 Василий
541-87-42; 067-205-47-01 Василий
541-87-42; 067-205-47-01 Василий
541-87-42; 067-205-47-01 Василий";
// Получаем отдельные строки
$lines = explode("\r\n", $str);
// В цикле обрабатываем каждую отдельную строку
for($i = 0; $i < count($lines); $i++)
{
// Получаем отдельные подстроки
$items = preg_split("|[\s]+|", $lines[$i]);
// Выделяем телефоны
$phones = array();
for($j = 0; $j < count($items); $j++)
{
$items[$j] = trim($items[$j], ",; ");
// Проверяем телефон ли это
if(preg_match("|[-\d]+|", $items[$j]))
{
// Удаляем тире
$items[$j] = str_replace("-", "", $items[$j]);
// Помещаем телефон-результат в массив
$phones[] = $items[$j];
}
}
// Выделяем имя
$name = "";
if(preg_match("|[^\d]+$|i", $lines[$i], $out)) $name = $out[0];
// Результат
echo "Имя = $name<br>";
echo "Телефоны";
echo "<pre>";
print_r($phones);
echo "</pre>";
}
?>
|
Не обязательно все делать за один заход. Я обычно обрабатывают такие текстовые базы в несколько заходов: простым скриптом обрабатываю основную массу данных, выделя все, что не подверглось обработки, пишу следующий скрипт для исключительных позиций и так до тех пор, пока не останется штук 50 совершенно диких позиций, которые можно обработать и в ручную (ну это конечно, если задачу нужно решить лишь один раз). | |
|
|
|
|
|
|
|
для: starpom
(26.12.2010 в 20:35)
| | так бы сразу и сказали. | |
|
|
|
|
|
|
|
для: sim5
(26.12.2010 в 20:20)
| | Парсер контента пишеться. | |
|
|
|
|
|
|
|
для: starpom
(26.12.2010 в 20:05)
| | Кто так поставил задачу? | |
|
|
|
|
|
|
|
для: starpom
(26.12.2010 в 20:17)
| | Это почему? | |
|
|
|
|
|
|
|
для: sim5
(26.12.2010 в 20:07)
| | не получиться | |
|
|
|
|
|
|
|
для: starpom
(26.12.2010 в 19:29)
| | На стороне клиента выставите условие, что телефонные номера должны вводиться только цифрами без всяких дефисов и прочего, при чем номера должены быть разделены между собой, например, запятой. Проверку этого поля не трудно на стороне клиента устроить с помощью рег. выражений. Ну а если "обманут" и пришлют бог невесть что, то формат записи совсем не сложно проверить числа_запятая_числа_запятая_числа, и если не соответствует, то возврат, иначе то, что вам надо. | |
|
|
|
|
|
|
|
для: neadekvat
(26.12.2010 в 19:53)
| | Может и проще, но задача стоит именно средствами php решить вопрос | |
|
|
|
|
|
|
|
для: starpom
(26.12.2010 в 19:40)
| | Может, проще будет просить пользователей вводить каждый телефон и свое имя отдельно? | |
|
|
|
|