Подскажите пожалуйста, правильно ли я делаю? Требуется вырезать текст из HTML страницы, возвращаемой по запросу. Собственно вот код: $url = "http://www.blabla.ru/"; $ch = curl_init(); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_USERPWD, "loginassword"); $result = strip_tags (curl_exec($ch)); $pos = strpos($result, " MAIN"); $result = substr($result, 0, $pos); curl_close($ch); echo $result; Результатом такого запроса является HTML страница с данными. Моим кодом я получаю данные до слова "MAIN", остальное отбрасывается за ненадобностью. Может можно это сделать как-то более эффективно?
Да, в общем-то, всё работает, просто думал - может я не правильно это реализовал в смысле корректности кода. Хотя, вот уточню: Из всего получаемого текста интересует лишь "Сумма баланса" В реальности строка выглядит примерно так: начало текста ..... Current balance: 145.61 MAIN ..... конец текста Т.е. меня интересует именно сумма баланса. Вот теперь наверняка понятней.
Задачу решил таким способом: $url = "http://www.blabla.ru/"; $ch = curl_init(); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_USERPWD, "loginassword"); $result = strip_tags (curl_exec($ch)); curl_close($ch); $result = preg_match('/(\d{1,3})\.(\d{1,2})/',$result,$found); print_r($found[0]); В результате получаю именно то, что хотел: 145.61
KPG При включенной опции URLWRAPPER_ALLOW (както так) можно делать такую штуку в одну строчку: Код (Text): if( preg_match ("[ЗДЕСЬ_РЕГЭКСП]", implode( file("http://blabla.ru") ), $matches) ) $cut = $matches[0];
Это конечно будет работать. В связи с этим следующий вопрос: Насколько безопасна передача пароля таким способом: http://loginass@domain.ru и таким: curl_setopt($ch, CURLOPT_USERPWD, "loginassword") Какой способ предпочтительней?