|
|
|
| По какой-то не понятной для меня причине, не срабатывает функция file_get_contents
// Устанавливаем соединение
$fs = fsockopen ($hostname, 80, $errno, $errstr, 60);
// Проверяем успешность соеднинения
if (!$fs) // Если соединения нет, выдаем сообщение и ошибку
{
echo "!!! Соединение c ".$hostname." не установлено !!!<br>";
echo "$errstr ($errno)<br>\n";
}
else // В случае успешного соеднинения:
{
echo "Cоединение с ".$hostname." установлено.<br>";
// формируем HTTP-запрос для передачи его серверу
$headers = "GET $path HTTP/1.1\r\n"; // Первая часть заголовка с указанием пути к файлу
$headers .= "Host: $hostname\r\n"; // Приращиваем вторую часть с указанием хоста к первой
$headers .= "Connection: Close\r\n\r\n"; // Приращиваем третью часть
// Отправляем HTTP-запрос серверу
fwrite($fs, $headers);
$takefile = file_get_contents($foolpath);
if (!$takefile)
{
echo "!!! Не возможно прочитать файл ".$path." с ".$hostname." !!! <br/>";
}
// Закрываем соединение
fclose($fs);
}
|
И выдает что "Не возможно прочитать файл ".$path." с ".$hostname." !!! "
Мож кто объяснит почему так... пару дней назад все работало, а теперь беда...
Или мож кто предложит альтернативу... мне нужно забирать файл в переменную.. но он достаточно большой по размеру, где то около 2MБ (кстати может по этому и не срабатывает file_get_contents ???) | |
|
|
|
|
|
|
|
для: romza
(19.10.2006 в 15:52)
| | А зачем вы открываете сокет, посылаете запрос на принятие файла, а файл копируете самостоятельной ф-ей, никак не связанной с этим сокетом? И не понятно, откуда у вас берется $foolpath...
Можно попробовать вот так:
<?
$str = 'str';
while(trim($str) != '')
{
$str = fgets($fs);
}
$file = fopen(basename($path), 'w');
while (!feof($fs))
{
$str = fgets($fs);
fputs($file, $str);
}
fclose($file);
|
| |
|
|
|
|
|
|
|
для: kasmanaft
(19.10.2006 в 17:44)
| | $foolpath берется из кода выше, просто не привел его сдесь, так как там все ясно
и мне не нужно записывать данные в файл, а необходимо получить их в переменную для дальнейшей обработки...
а сокет открывал, так как забираемый файл находится на другом хосте, в отличии от скрипта... или вообще в данном случае можно обойтись без сокетов?
И не понятно, почему не работает функция file_get_contents(), c чем это может быть связано, несколько дней назад она нормально работала... | |
|
|
|
|
|
|
|
для: romza
(19.10.2006 в 17:54)
| | Да, обойтись можно без сокетов ... но 2 мегабайта "в переменную" наверное не выйдет на чужом хостинге ...
А вообще для чего вам файл в переменной? | |
|
|
|
|
|
|
|
для: kasmanaft
(19.10.2006 в 18:01)
| | это xml который нужно переверстать автоматом | |
|
|
|
|
|
|
|
для: romza
(19.10.2006 в 18:07)
| | Не получается ... подскажите другой способ плиз.. | |
|
|
|
|
|
|
|
для: romza
(20.10.2006 в 10:14)
| | А могу ли я как нить по частям забирать файл??? | |
|
|
|