Получить формат объекта парсинга

yeaahhh

Старатель
Регистрация
8 Май 2008
Сообщения
278
Реакции
11
Ребят, подскажи, пожалуйста, как получить формат файла, который парсится?
Парсю через file_get_contents()
Ссылка динамическая.. Т.е. нельзя получить расширение получаемого файла через рег выражения..

Может быть всё-таки как-то можно определить формат?
 
попробуй через explode()
 
не совсем понятен вопрос
нужно либо получать прямой адрес на файл и извлекать расширение
либо анализировать содержимое файла по сигнатуре и определять расширение
 
Я тяну через функцию file_get_contents()
ссылка-донор:
Получаю содержимое в строчке.
Можно ли как-то определить формат того, что я получил? Т.е. как узнать, что это файл .exe?)
Чтобы потом через put_file_contents на свой сервер с правильным форматом перенести..
ИЛи есть какие-то другие способы?
Заранее спасибо)
 
По расширению файла?
PHP:
$url = 'http://download.yandex.ru/downloadable_soft/firefox/softportal/FirefoxSetup.exe';
$ext = substr($url, strrpos($url, '.'));
Ссылка на файл переадресовывает на yandex на том сайте.
 
Я тяну через функцию file_get_contents()
ссылка-донор: *** скрытое содержание ***
Получаю содержимое в строчке.
Можно ли как-то определить формат того, что я получил? Т.е. как узнать, что это файл .exe?)
Чтобы потом через put_file_contents на свой сервер с правильным форматом перенести..
ИЛи есть какие-то другие способы?
Заранее спасибо)
тянуть с курлом с отключенной open_basedir (потому как редирект)
PHP:
<?php 

function get_web_page( $url,$proxy=null )
{
  $uagent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.8) Gecko/2009032609 Firefox/3.0.8";
  $cookie = $_SERVER['DOCUMENT_ROOT']."/cookie.txt";
 
  $ch = curl_init( $url );

  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);  // возвращает веб-страницу
  curl_setopt($ch, CURLOPT_REFERER,"http://www.softportal.com/");
  curl_setopt($ch, CURLOPT_HEADER, 0);           // не возвращает заголовки
  curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 10);   // переходит по редиректам
  curl_setopt($ch, CURLOPT_ENCODING, "");        // обрабатывает все кодировки
  curl_setopt($ch, CURLOPT_USERAGENT, $uagent);  // useragent
  curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 20); // таймаут соединения
  curl_setopt($ch, CURLOPT_TIMEOUT, 20);        // таймаут ответа
  curl_setopt($ch, CURLOPT_MAXREDIRS, 10);       // останавливаться после 10-ого редиректа
  curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie);
  curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie);
  curl_setopt($ch, CURLOPT_PROXY, $proxy);
  
  $content = curl_exec( $ch );
  $err     = curl_errno( $ch );
  $errmsg  = curl_error( $ch );
  $header  = curl_getinfo( $ch );
  curl_close( $ch );

  $header['errno']   = $err;
  $header['errmsg']  = $errmsg;
  $header['content'] = $content;
  return $header;
}
$url = 'http://www.softportal.com/getsoft-18547-dictionary-net-2.html';
$result = get_web_page($url);
print_r($result);
//Array
//(
 //   [url] => http://fishcodelib.com/files/DictionaryNet.zip
 //   [content_type] => application/x-zip-compressed
  //  [http_code] => 200
   // [header_size] => 798
  //  [request_size] => 509
  //  [filetime] => -1
   // [ssl_verify_result] => 0
 //   [redirect_count] => 1
 //   [total_time] => 1.584033
 //   [namelookup_time] => 0.001851
 //   [connect_time] => 0.186331
  //  [pretransfer_time] => 0.186405
  //  [size_upload] => 0
  //  [size_download] => 196392
  //  [speed_download] => 123982
 //   [speed_upload] => 0
  //  [download_content_length] => 196392
 //   [upload_content_length] => 0
 //   [starttransfer_time] => 0.371587
  //  [redirect_time] => 0.093294
  //  [errno] => 0
//    [errmsg] => 
 //   [content] => PK╚╪ч▒н
 
Назад
Сверху