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

Тема в разделе "PHP", создана пользователем yeaahhh, 10 ноя 2011.

Модераторы: latteo
  1. yeaahhh

    yeaahhh

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

    Может быть всё-таки как-то можно определить формат?
     
  2. bajun

    bajun Постоялец

    Регистр.:
    26 окт 2011
    Сообщения:
    67
    Симпатии:
    3
    попробуй через explode()
     
  3. cwman

    cwman

    Регистр.:
    4 май 2008
    Сообщения:
    465
    Симпатии:
    548
    не совсем понятен вопрос
    нужно либо получать прямой адрес на файл и извлекать расширение
    либо анализировать содержимое файла по сигнатуре и определять расширение
     
  4. yeaahhh

    yeaahhh

    Регистр.:
    8 май 2008
    Сообщения:
    278
    Симпатии:
    11
    Я тяну через функцию file_get_contents()
    ссылка-донор: www.softportal.com/get-2539-mozilla-firefox.html
    Получаю содержимое в строчке.
    Можно ли как-то определить формат того, что я получил? Т.е. как узнать, что это файл .exe?)
    Чтобы потом через put_file_contents на свой сервер с правильным форматом перенести..
    ИЛи есть какие-то другие способы?
    Заранее спасибо)
     
  5. chibit

    chibit Life sucks.

    Регистр.:
    4 дек 2007
    Сообщения:
    420
    Симпатии:
    285
    По расширению файла?
    PHP:
    $url 'http://download.yandex.ru/downloadable_soft/firefox/softportal/FirefoxSetup.exe';
    $ext substr($urlstrrpos($url'.'));
    Ссылка на файл переадресовывает на yandex на том сайте.
     
  6. zzallexx

    zzallexx

    Регистр.:
    11 июн 2008
    Сообщения:
    1.036
    Симпатии:
    699
    тянуть с курлом с отключенной 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($chCURLOPT_RETURNTRANSFER1);  // возвращает веб-страницу
      
    curl_setopt($chCURLOPT_REFERER,"http://www.softportal.com/");
      
    curl_setopt($chCURLOPT_HEADER0);           // не возвращает заголовки
      
    curl_setopt($chCURLOPT_FOLLOWLOCATION10);   // переходит по редиректам
      
    curl_setopt($chCURLOPT_ENCODING"");        // обрабатывает все кодировки
      
    curl_setopt($chCURLOPT_USERAGENT$uagent);  // useragent
      
    curl_setopt($chCURLOPT_CONNECTTIMEOUT20); // таймаут соединения
      
    curl_setopt($chCURLOPT_TIMEOUT20);        // таймаут ответа
      
    curl_setopt($chCURLOPT_MAXREDIRS10);       // останавливаться после 10-ого редиректа
      
    curl_setopt($chCURLOPT_COOKIEFILE$cookie);
      
    curl_setopt($chCURLOPT_COOKIEJAR$cookie);
      
    curl_setopt($chCURLOPT_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╚╪ч▒н
     
    yeaahhh нравится это.