Помогите с регулярным выражением на PHP

sherxan-g

Новичок
Нужно написать регулярное выражение, которое бы находило цифры в тегах
HTML:
<br>5.3.29 <span>
цифры каждый раз бывает разный.
Вот мое скрипт
PHP:
<?PHP
    function getTitle($url) {
        $data = file_get_contents($url);
    $title1 = preg_match('/<br>(.*?)<span>Safe/ims', $data, $matches) ? $matches[1] : null;
    return "$title1";
    }

echo getTitle('url...');

?>
Но скрипт копирует вес код
url для теста [удалено модератором c0dex]
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Не надо постить адреса сайтов, на которые ругается антивирус...
 

sherxan-g

Новичок
Не надо постить адреса сайтов, на которые ругается антивирус...
вот от чего ругается тупое антивирус
HTML:
<html><head><meta http-equiv='Content-Type' content='text/html; charset=UTF-8'>
<table class=info cellpadding=3 cellspacing=0 width=100%><tr><td width=1><span>Uname:<br>User:<br>Php:<br>Hdd:<br>Cwd:<br>Drives:</span></td><td><nobr>Windows NT DTCWIN120 6.1 build 7601 (Windows Server 2008 R2 Web Server Edition Service Pack 1) i586<a></nobr><br>0 ( w1201156 ) <span>Group:</span> 0 ( ? )<br>5.3.29 <span>Safe mode:</span> </table>
</html>
 

ksnk

прохожий
Попробуй вот такую регулярку. Не поможет ?
PHP:
$data=<<<HTML
<html><head><meta http-equiv='Content-Type' content='text/html; charset=UTF-8'>
    <table class=info cellpadding=3 cellspacing=0 width=100%><tr><td width=1><span>Uname:<br>User:<br>Php:<br>Hdd:<br>Cwd:<br>Drives:</span></td><td><nobr>Windows NT DTCWIN120 6.1 build 7601 (Windows Server 2008 R2 Web Server Edition Service Pack 1) i586<a></nobr><br>0 ( w1201156 ) <span>Group:</span> 0 ( ? )<br>5.3.29 <span>Safe mode:</span> </table>
</html>
HTML;

preg_match('/<br>(\d+\.\d+\.\d+)\s*<span>Safe/is', $data, $matches) ;
print_r($matches);
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
вот от чего ругается тупое антивирус
HTML:
<html><head><meta http-equiv='Content-Type' content='text/html; charset=UTF-8'>
<table class=info cellpadding=3 cellspacing=0 width=100%><tr><td width=1><span>Uname:<br>User:<br>Php:<br>Hdd:<br>Cwd:<br>Drives:</span></td><td><nobr>Windows NT DTCWIN120 6.1 build 7601 (Windows Server 2008 R2 Web Server Edition Service Pack 1) i586<a></nobr><br>0 ( w1201156 ) <span>Group:</span> 0 ( ? )<br>5.3.29 <span>Safe mode:</span> </table>
</html>
Дерьмовыми хостингами не надо пользоваться, и все, ваши волосы будут мягкими и шелковистыми. Домен в блэк листе
 

Squats

Новичок
Вот по этому я и говорю.
Задача вообще не понятна, откуда там пробел взялся? Его там быть не должно по факту.
Дальше, неизвестно, есть ли там еще, что-то, кроме пробела, может там текст есть, может еще чего.
Эту задачу можно решить множеством способов
Но я думаю, добавить \s* после ) - а то мало-ли, мы не знаем, а там их 5, а не 1 или вообще нет пробелов.
/<br>([^<]+)\s*<span>/

Ну или так:

/<br>([\d.]+)\s<span>/

Что точно нам нельзя будет использовать ничего, кроме точек и цифр и обязательно 1 пробела в конце.
 
Сверху