- 01
 - 02
 - 03
 - 04
 - 05
 - 06
 - 07
 - 08
 - 09
 - 10
 - 11
 - 12
 - 13
 - 14
 - 15
 - 16
 - 17
 - 18
 - 19
 - 20
 - 21
 - 22
 - 23
 - 24
 - 25
 - 26
 - 27
 - 28
 - 29
 - 30
 - 31
 - 32
 - 33
 - 34
 - 35
 - 36
 - 37
 - 38
 - 39
 - 40
 - 41
 - 42
 - 43
 - 44
 - 45
 
                        <?php
 // Получение страницы напрямую или через проксю
function getfile($GrabURL)
{
 global $proxy_name,$proxy_port;
 if($proxy_name!="")
 {
  $f = urldecode($GrabURL);
  $proxy_fp = fsockopen($proxy_name, $proxy_port,$errno,$errstr);
  if (!$proxy_fp)
   return false;
  $out = "GET ".$f." HTTP/1.0\r\n\r\n";
  fwrite($proxy_fp, $out);
  $x = "";
  stream_set_timeout($OpenFile, 10);
  stream_set_blocking($OpenFile, 0);
  while (!feof($proxy_fp))
  {
   $RetrieveFile = fread($proxy_fp,8192) or last;
   $x = $x.$RetrieveFile;
  }
  fclose($proxy_fp);
 }
 else
 {
 $OpenFile = fopen($GrabURL, "rb");
 if(!$OpenFile) return "";
   $i = 0;
   $x = "";
   stream_set_timeout($OpenFile, 10);
   stream_set_blocking($OpenFile, 0);
   while (!feof($OpenFile))
    {
     $RetrieveFile = fread($OpenFile, 8192);
     $x=$x.$RetrieveFile;
    }
   fclose($OpenFile);
  }
 return $x;
}
?>
                                 
        
            Аналог file_get_contents. По просьбам из #4065
        
        
Вот этот товарищ, например, определяет переменные до их использования:
В практическом смысле вещь спорная, но при отладке сразу видно - какая переменная что внутри себя может хранить :)
Скрипт обычно помещается на один экран.
Если писать на PHP серьезные приложения, то все его приимущества тут же превращаются в недостатки.
Но люди этого не понимаю, и плодят какие-то CMSы, фреймворки, и чуть ли не системы документооборота.
'0' == 0
В 2007 году эта функция могла быть вполне неплохой (она может работать с прокси, в отличие от того же file_get_contents).
Я бы даже сказал, что после напильничка это была бы даже хорошая функция для тех, кто Curl не любит.
Всегда же хочется своими силами попробовать, без сторонних классов и библиотек, а? ;)
Есть тупой копипаст:
В первой части это работать не будет, т. к. файл открыт как $f
Есть глупости, плохо отформатирован код, но все же я считаю это не ГК.
Кто так не считает - пожалуйста, парируйте.
Напоминаю, 2007, никаких file_get_contents не было.
Так что это не "извращения с сокетами", по-другому никак было.
"Тупо" никогда ничего делать не надо, иначе ваш код может занять еще одно почетное место в этом цитатнике.
В сорока пяти строчках и разбираться-то нечего, мне так все сразу понятно.
Если вы хотите нас удивить - перепишите этот код, так как вы считаете нужным.
Я хочу видеть вашу позицию в коде, а не на словах.
и реализацию соответствующую.
Но для несерьезных проектов сгодилась бы и такая функция.
"вполне неплохой" эта функция могла быть в 1977м году. А потом люди открыли, что глобальные переменные это плохо, например.
А я говорил о самой функции, а не о том, как туда поступают данные.
попробуйте получить результат яндекса например
Если бы там был хотя бы ассоциативный массив (об объекте я уже не мечтаю) было бы в сто раз лучше.
Что вообще полезного в Вашей функции? Тот факт, что она умеет делать IF, и ветвится в зависимости от пустоты (или не пустоты) proxy_name?
Я просто говорю про то, что это не такой ГК, как его малюют.
Автор представил нам это именно как аналог файл_гет_контентса, я же просто оппонировал к этому высказыванию.
И мне никогда не мешало отправлять заголовки строкой. Если честно - никогда не пользовался курлом при работе с удаленными файлами.
сразу в печь