| groundhog |
12.08.2007 12:12 |
*D1VER, у нормального прова отключён вызов filegetcontents с удалённой урлы... Так что на 99% это гиблое дело...
vovan x100, если у тебя нормальный хостер, есть PHP с сокетами, то алгоритм прост:
1) Посылаешь GET запрос через сокеты и получаешь содержимое страницы;
2) С помощью регулярных выражений (или иными функциями) ищёшь/вырезаешь интересующие тебя врагменты;
3) Найденные фрагменты выводишь/сохраняешь/обрабатываешь;
Для примера привожу функцию на PHP для получения страницы:
Цитата:
function getContentFromRemoteResource ($remoteUrl, &$pageContent) {
$urlData = parse_url($remoteUrl);
if (!isset($urlData["host"])) return false;
if (!isset($urlData["port"])) $urlData["port"] = 80;
if (!isset($urlData["path"])) $urlData["path"] = "/";
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if (!$socket) return false;
$result = socket_connect($socket, $urlData["host"], $urlData["port"]);
if (!$result) return false;
$resource = $urlData["path"];
if (isset($urlData["query"])) $resource .= "?{$urlData["query"]}";
$sendData = "GET {$resource} HTTP/1.1\r\n";
$sendData .= "Host: {$urlData["host"]}\r\n";
$sendData .= "User-Agent: Antichat Evil Fetcher\r\n";
$sendData .= "Accept: */*\r\n";
$sendData .= "Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0\r\n";
$sendData .= "Pragma: no-cache";
$sendData .= "Connection: Close\r\n\r\n";
$ret = socket_write($socket, $sendData, strlen($sendData));
if (!$ret) return false;
$buffer = "";
while ($data = socket_read($socket, 1024)) {
$buffer .= $data;
}
socket_close($socket);
list($headers, $content) = preg_split("/\r\n\r\n/", $buffer, 2);
if (strlen($content) <= 0 || strlen($headers) <= 0) return false;
$httpCode = intval(substr($headers, 9, 3));
if ($httpCode != 200) return false;
$pageContent = $content;
return true;
}
|
Дальше содержимое из $pageContent парсишь с нужными тебе критериями для поиска необходимой информации.
|