проблема как вырезать средствами php подстроку из строки самым оптимальным способом.
строка :
<html><head></head><body>Current IP Address: 178.94.41.150<br>Hostname: localhost
</body></html>
код получения подстроки - 178.94.41.150:
$data = '<head></head><body>Current IP Address: 178.94.41.150<br>Hostname: localhost
</body></html>';
$data = explode('<br>', $data);
$ip = explode(' ', $data[0]);
echo "<pre>";
print_r($ip[3]);
ищу решение, чтобы дважды не использовать explode
примечание - длина подстроки может быть неизвестна!
спасибо
Спустя 5 минут, 8 секунд (1.05.2012 - 11:11) m4a1fox написал(а):
Регулярные выражения вам в помощь.
Спустя 2 минуты, 14 секунд (1.05.2012 - 11:13) skolozhabskiy написал(а):
спасибо, а как построить такое регулярное выражение в конкретном случае?
несилен в регулярных выражениях
спасибо
несилен в регулярных выражениях
спасибо
Спустя 1 минута, 30 секунд (1.05.2012 - 11:15) Adamant написал(а):
preg_match('/<body>[\D]+([\d.]+)/i', $str, $matches);
echo $matches[1];
Вам будет полезно http://phpclub.ru/detail/article/regexp_1
http://phpclub.ru/detail/article/regexp_2
Спустя 4 минуты, 22 секунды (1.05.2012 - 11:19) skolozhabskiy написал(а):
спасибо за решение, но я получаю пустой массив.
в чем ошибка?
спасибо
$data = '<head></head><body>Current IP Address: 178.94.41.150<br>Hostname: localhost
</body></html>';
preg_match('/<body>[\D]+([\d.]+)/i', $data, $matches);
echo $matches[1]; // так ошибка
echo "<pre>";
print_r($matches); // так пустой массив
в чем ошибка?
спасибо
Спустя 6 минут, 17 секунд (1.05.2012 - 11:25) Adamant написал(а):
Что пишет, какая ошибка? У меня все работает корректно
178.94.41.150
Array
(
[0] => Current IP Address: 178.94.41.150
[1] => 178.94.41.150
)
Спустя 1 минута, 18 секунд (1.05.2012 - 11:27) skolozhabskiy написал(а):
ошибка : Notice: Undefined offset: 1 in C:\Apache\test.ru\www\testing\_test.php on line 66
я беру эти данные вот так:
полный код:
может в этом проблемка?
спасибо
я беру эти данные вот так:
полный код:
$data = file_get_contents("http://dynamic.zoneedit.com/checkip.html");
preg_match('/<body>[\D]+([\d.]+)/i', $data, $matches);
echo $matches[1]; // так ошибка
echo "<pre>";
print_r($matches); // так пустой массив
может в этом проблемка?
спасибо
Спустя 1 минута, 26 секунд (1.05.2012 - 11:28) Adamant написал(а):
Цитата (skolozhabskiy @ 1.05.2012 - 15:27) |
ошибка : Notice: Undefined offset: 1 in C:\Apache\test.ru\www\testing\_test.php on line 66 |
А что у вас находится на 66 строке? Код приведите
Спустя 5 минут, 57 секунд (1.05.2012 - 11:34) Adamant написал(а):
Капец. А где вы в коде вашего сайта нашли body?
$data = file_get_contents("http://dynamic.zoneedit.com/checkip.html");
preg_match('/[\D]+([\d.]+)/i', $data, $matches);
echo $matches[1];
echo "<pre>";
print_r($matches);
?>
Спустя 2 минуты, 4 секунды (1.05.2012 - 11:36) skolozhabskiy написал(а):
спасибо, я понял решение. лишним в выражении было <body>
еще раз спасибо
еще раз спасибо