Еще одно изменение - то что в качестве разделителя используется [^0-9]{0,3} а не [^0-9]{0,2} Шаблон [^0-9]{0,2} не находит соответствие если сразу после разделителя номера (например дефис) идет перевод строки. Возможно, это связано с тем, что в Windows новая строка \r\n. Вместе с дефисом - уже три.
([0-9]{3}) - три цифры
[^0-9]{0,2} - 0,1 или 2 символа, кроме цифр. Я беру как max именно два, потому что может быть дефис, а потом пробел или превод строки
([0-9]{3}) - три цифры
[^0-9]{0,2} - 0,1 или 2 символа, кроме цифр
([0-9]{2}) - две цифры
[^0-9]{0,2} - 0,1 или 2 символа, кроме цифр
([0-9]{2}) - две цифры
Это будет соответствовать
xxxxxxxxxx
xxx xxx xx xx
xxx-xxx-xx-xx
xxx xxxxxxx
xxx xxx-xx-xx
и т.п.
Номера городских
(?:[0-9]{3}[^0-9]{0,2}[0-9]{3})|(?:[0-9]{2}[^0-9]{0,2}[0-9]{2}[^0-9]{0,2}[0-9]{2})
или так: [0-9]{3}[^0-9]{0,2}[0-9]{3}
xxx-xxx
xxxxxx
xxx xxx
Или так [0-9]{2}[^0-9]{0,2}[0-9]{2}[^0-9]{0,2}[0-9]{2}
xx xx xx
xx-xx-xx
xxxxxx
Вот, начал объяснять, и понял, что в моем решении есть ошибка. Номер телефона
123-456-78-90 123-456-78-90
будет найден два раза - сначала как мобильный, потом как городской. Надо бы делать так: удалять из сообщения найденные номера мобильных, а уже потом в этом урезанном объявлении искать городские номера.
Существует ли такая проблема у движка ExBB? У некоторых пользователей при заходе на форум загружается пустая страница! У других (из других городов) работает нормально, в том числе у меня.
У ExBB столько проблем, что перечислять их все - много времени уйдет.
Есть текст, и в тексте встречаются строки
123456
12 34 56
12-34-56
1234567890
123 456-78-90
(123) 4567890
123-456-78-90
(123) 4567890
Вполне возможно, с ошибками
(123 4567890
123) 456-78-90
А еще какой-нибудь оригинал напишет
123*456*78*90
Я вообще немного разбираюсь в рег. выражениях, но за такую задачу не возмусь: "Пойди туда, не знаю куда, принеси то, не знаю что."
Надо формализовать задачу. Например, все, что имеет формат
xxxxxx
xx-xx-xx
xx xx xx
xxxxxxxxxx
xxx-xxx-xx-xx
xxx xxx xx xx
xxx xxx-xx-xx
xxx xxx-xxxx
где x - цифра, считаем номером телефона. Все остальное - нет. Тогда можно будет подумать.
Есть некоторая таблица в БД, содержащая поля id, name, phone. Скрипт позволяет получить нужную запись, если искать по id или name. Т.е. запрос на выборку выглядит примерно так
SELECT * FROM mytable WHERE id=17;
SELECT * FROM mytable WHERE name='Sasha';
А тебе надо искать по номеру телефона? Т.е. есть несколько цифр, и надо найти id или имена, у которых номер телефона содержит, например 456
SELECT id, name WHERE phone LIKE '%456%';
Если номер телефона точно известен
SELECT id, name WHERE phone='123-45-67';
Хм, еще мне кажется что пора бы сменить хостера, а то на скрипт заходит только с пятого раза
Ну, хостеров мы все любим поругать. Но еще раз повторю - без исходников это пустой разговор. Если cookie не видно лишь изредка - задача нетривиальная. Надо проверять, не пересекаются ли где-нибудь переменные - ведь register_globals=On. Т.е. возможна ситуация, когда переменная cookie перезаписывается другой переменной с тем же именем, например, переменной сесии
variables_order="EGPCS"
или какой-нибудь еще $user.
Вообще, надо по возможности предельно упростить эти три скрипта, и посмотреть будет ли проявляться проблема.
И что значит - пустая переменная? Равна пустой строке? Не определена? Что будет, если к этой переменной обратиться через массив $_COOKIE?
Но читать-то ты умеешь? Заменить document.getElementById('action').value
на document.forms['myform'].elements['action'].value
в состоянии? И убрать атрибут id="action" из элементов input type="radio"
Разумеется, вместо myform надо написать имя твоей формы (атрибут name тега form)