Умельцы - поправьте пожалуйста рег.выражение =)

Евгений Иванов
На сайте с 26.07.2006
Offline
272
394

Раньше было

//Rambler Index 
function rambler_index($url){
$file=file_get_contents("http://nova.rambler.ru/search?sort=0&filter=$url&short=2&limit=1");
$file=iconv("UTF-8", "CP1251", $file);
if(preg_match(".*?<b>.*?</b>.*?<b>(.*?)</b></span>!si",$file,$ok)){ $link=$ok[1]; } else { $link=0; }
return trim($link);
}

Сейчас рамблер меню новое сделал, соответственно выражение выше не работает.

Сейчас нужно взять кол-во страниц между след.кодом, то есть вытаскиваться будет 342 тыс.

<span class="info">Результаты <b>1–15</b> из <b>342 тыс.</b></span>

Собственно буду благодарен рабочему коду :)

PS Коли решил тему создать, спрошу ещё кое что :)

С яндекса, с рамблера и прочих мест я получаю результат след. вида: 366 или 342 тыс или 565,000 или 20 млн или

Google - 565,000

Яндекс -987 тыс

Рамблер - 342 тыс

Нужно все результаты перевести в единый вид, пример:

  • 366 так и остаёться
  • 342 тыс превращаеться в 342000
  • 565,000 превращаеться в 565000
  • 20 млн превращается в 20000000

Как мне осуществить перевод сразу после получения результата ну и до записи в базу?

Wap.Click / Вап.Клик / Я - рядом!
S
На сайте с 28.10.2005
Offline
319
#1

preg_match(".*?<b>.*?</b>.*?<b>(.*?)</b></span>!si",$file,$ok)

Это работало?

С кодировкой можно и не парицо


preg_match('/<span class="info">.*<b>.*<\/b>.*<b>(.*)<\/b><\/span>/Ui',$file,$ok)
dvaes
На сайте с 03.09.2007
Offline
65
#2

я так делал


preg_match("'из <b>([^<]+)</b>'i",$file,$ok)

а замену тыс. можно сделать просто функцией


function _replace($str) {
$ch = array("тыс.", "млн.");
$nm = array("000", "000000");
return str_replace($ch, $nm, $str);
}

там понятно куда писать что менять и куда на что менять) можно адаптировать под все случаи замены)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий