[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: регулярное выражение исправьте ошибку
Guest


Существует файл, который хранится в $answer:

% By submitting a query to RIPN's Whois Service
% you agree to abide by the following terms of use:
% http://www.ripn.net/about/servpol.html#3.2 (in Russian)
% http://www.ripn.net/about/en/servpol.html#3.2 (in English).
domain: YANDEX.RU
nserver: ns1.yandex.ru. 213.180.193.1
nserver: ns2.yandex.ru. 213.180.199.34
nserver: ns4.yandex.ru. 77.88.19.60
nserver: ns5.yandex.ru. 213.180.204.1
state: REGISTERED, DELEGATED, VERIFIED
org: YANDEX, LLC.
phone: +7 495 7397000
fax-no: +7 495 7397070
e-mail: noc@yandex.net
registrar: RU-CENTER-REG-RIPN
created: 1997.09.23
paid-till: 2012.10.01
source: TCI
Last updated on 2011.10.02 19:45:46 MSK/MSD

Как вывести значение paid-till: на экран?
Мое регулярное выражение не работает, как его исправить?

preg_match('|paid-till:(.*)source|',$answer,$arr);
$t = $arr[1];

echo $t;








Спустя 5 минут, 10 секунд (2.10.2011 - 19:04) Игорь_Vasinsky написал(а):
preg_match("#paid-till:(\pN{4}\.pN{2}\.pN{2})#iusU",$answer,$arr);


вот это \.pN{2}\.pN{2} -можно ещё сократить, но я не помню...

Спустя 9 минут, 45 секунд (2.10.2011 - 19:14) tanya12345 написал(а):


preg_match("#paid-till:(\pN{4}\.pN{2}\.pN{2})#iusU",$answer,$arr);
$t = $arr[1];
echo $t;

На экране ниче не выводится.Подскажите в чем причина ошибки?

Спустя 3 минуты, 36 секунд (2.10.2011 - 19:17) Игорь_Vasinsky написал(а):
Упс

preg_match("#paid-till:(\pN{4}\.\pN{2}\.\pN{2})#iusU",$answer,$arr);


это для юникода было написано, для анси

preg_match("#paid-till:(\d{4}\.\d{2}\.\d{2})#isU",$answer,$arr);



посмотреть где вывод:

echo '<pre>' .print_r($arr). '</pre>';

Спустя 9 минут, 7 секунд (2.10.2011 - 19:26) tanya12345 написал(а):
preg_match("#paid-till:(\d{4}\.\d{2}\.\d{2})#isU",$answer,$arr);
echo '<pre>' .print_r($arr). '</pre>';


Тогда на экране появляется

Array ( )
1

В чем причина????

Спустя 1 минута, 44 секунды (2.10.2011 - 19:28) Игорь_Vasinsky написал(а):
как получен $answer?

Спустя 5 минут, 13 секунд (2.10.2011 - 19:33) tanya12345 написал(а):
На экране:

Информация о savage.ru

% By submitting a query to RIPN's Whois Service
% you agree to abide by the following terms of use:
% http://www.ripn.net/about/servpol.html#3.2 (in Russian)
% http://www.ripn.net/about/en/servpol.html#3.2 (in English).
domain: SAVAGE.RU
nserver: ns.masterhost.ru.
nserver: ns1.masterhost.ru.
nserver: ns2.masterhost.ru.
state: REGISTERED, DELEGATED, VERIFIED
org: Savage Ltd
phone: +74957808888
fax-no: +74957800320
e-mail: it@savage.ru
e-mail: noc@innovamedia.ru
registrar: RU-CENTER-REG-RIPN
created: 2001.03.29
paid-till: 2012.03.29
source: TCI
Last updated on 2011.10.02 20:30:46 MSK/MSD
Array ( )
1

Спустя 28 секунд (2.10.2011 - 19:34) Winston написал(а):
Цитата (tanya12345 @ 2.10.2011 - 19:26)
В чем причина????

Причина в корявом шаблоне :)
preg_match("#(paid-till:[^\n]*)#isu", $answer, $arr);
print_r($arr);

Спустя 4 минуты, 42 секунды (2.10.2011 - 19:38) tanya12345 написал(а):
Если

preg_match("#(paid-till:[^\n]*)#isu", $answer, $arr);
$t=$arr[1];
print($t);


то выводит
paid-till: 2012.03.29

А как исправить выражение, чтобы выводило одну дату?

Спустя 2 минуты, 13 секунд (2.10.2011 - 19:41) Winston написал(а):
"#paid-till:([^\n]*)#isu"

Спустя 10 минут, 27 секунд (2.10.2011 - 19:51) tanya12345 написал(а):
спасибо)

Спустя 6 минут, 8 секунд (2.10.2011 - 19:57) Winston написал(а):
Цитата (Игорь_Vasinsky @ 2.10.2011 - 19:17)
посмотреть где вывод:
echo '<pre>' .print_r($arr). '</pre>';

echo '<pre>' .print_r($arr, 1). '</pre>';

;)

Спустя 23 секунды (2.10.2011 - 19:58) Игорь_Vasinsky написал(а):
wink.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.