Внимание! В связи с устареванием топика эта страница была взята из кэша.
|
Uncle
Зарегистрирован: 11.01.03
Сообщения: 36
|
Добавлено: 15/03/04 в 20:27
|
|
Имеется примерно такая конструкция: <? $fp=fopen("url","r"); $contents=fread($fp,1000000); fclose($fp); $ff = fopen("contents.txt", "w+"); fwrite ($ff,$contents); fclose ($ff); ?>
На локальном сервере это работает, файл создается и информация в него записывается. А на хосте не работает (естественно "url" - заменен), т.е. соединение устанавливается, файл создается, но ничего в него не записывается. права доступа к contents.txt - 0777. И это наблюдается на разных хостах. Подскажите, в чем причина?
|
K началу
|
|
|
Stek
Зарегистрирован: 24.10.02
Сообщения: 1613
|
Добавлено: 15/03/04 в 21:10
|
|
Если хосты фришные, то возможно просто нет прав на работу с сокетами.
|
K началу
|
|
|
bog
Зарегистрирован: 07.11.02
Сообщения: 1993
|
Добавлено: 15/03/04 в 21:17
|
|
скорее всего $contents пустой  т.е. тебе не удается сконектиться с другим серваком... или забанили или еще что нить. попробуй file();
|
K началу
|
|
|
eugenyZ
Зарегистрирован: 28.11.02
Сообщения: 153
|
Добавлено: 15/03/04 в 22:10
|
|
раньше для меня это была проблема - на хосте ревшарехостинга, обошёл сей момент через мускуль. Перезапись при любых правах давала отрицательный результат, поскольку модуль ПХП идёт под сэйв модом - даже ни один сидж не вставал - пришлось писать всё эксклюзивно под себя ...
|
K началу
|
|
|
Uncle
Зарегистрирован: 11.01.03
Сообщения: 36
|
Добавлено: 16/03/04 в 05:22
|
|
bog писал: | скорее всего $contents пустой  т.е. тебе не удается сконектиться с другим серваком... ; |
Мне кажется конектится, вот более полный код: <? $theurl="donain.com/page.html"; if (!(@ $fp=fopen($theurl,"r"))) { echo "Не возможно соединиться с ".$theurl; exit; } $contents=fread($fp,1000000); fclose($fp); $ff = fopen("common_page.txt", "w+"); fwrite ($ff,$contents); fclose($ff); ?> Сообщение не выводится и файл "common_page.txt" создается размером чуть больше 2к. Хосты использую спонсорские.
|
K началу
|
|
|
Quantum[Tau]
Зарегистрирован: 15.03.04
Сообщения: 618
|
Добавлено: 16/03/04 в 06:17
|
|
1. Попробуй с error_reporting(E_ALL);
http://php.net/error_reporting
2. Надо проверять успешность операции записи fwrite.
|
K началу
|
|
|
ah2ng
Зарегистрирован: 21.12.03
Сообщения: 91
|
Добавлено: 16/03/04 в 21:14
|
|
мне кажеться лучше делать через сокеты <? function connectToURL($addr, $port, $path, $user="", $pass="", $timeout="30") { $urlHandle = fsockopen($addr, $port, $errno, $errstr, $timeout); if ($urlHandle) { socket_set_timeout($urlHandle, $timeout); if ($path) { $urlString = "GET $path HTTP/1.0\r\nHost: $addr\r\nConnection: Keep-Alive\r\nUser-Agent: MyURLGrabber\r\n"; if ($user) $urlString .= "Authorization: Basic ".base64_encode("$user:$pass")."\r\n"; $urlString .= "\r\n"; fputs($urlHandle, $urlString); $response = fgets($urlHandle); if (substr_count($response, "200 OK") > 0) { $endHeader = false; while ( !$endHeader) { if (fgets($urlHandle) == "\r\n") $endHeader = true; } return $urlHandle; } else if (strlen($response) < 15) { fclose($urlHandle); return -1; } else { fclose($urlHandle); return substr($response,9,3); } } return $urlHandle; } else return -1; } $tab=parse_url($rurl); $fl = connectToURL($tab[host], 80, $tab[recip],"","",3); $ch = intval($fl); $content = ""; if($ch!=-1) while ($line = fgets($fl,1024)) { $content .= $line; }
|
K началу
|
|
|
bog
Зарегистрирован: 07.11.02
Сообщения: 1993
|
Добавлено: 16/03/04 в 21:37
|
|
Сокеты в РНР4 очень тормозят...
<? $theurl="donain.com/page.html"; if (!(@ $fp=fopen($theurl,"r"))) { echo "Не возможно соединиться с ".$theurl; exit; } $contents=fread($fp,1000000);
echo "### $contents ###";
fclose($fp); $ff = fopen("common_page.txt", "w+"); fwrite ($ff,$contents); fclose($ff); ?> сделай вот так и посмотри выведеться у тебя контент или нет.
|
K началу
|
|
|
Vovasik
Зарегистрирован: 13.08.01
Сообщения: 691
|
Добавлено: 16/03/04 в 23:00
|
|
вот такое у меня везде работало
$fp=fopen("url","r"); $contents = ""; while (!feof($fp)) { $contents .= fgets($fp,10000); } fclose($fp);
хз почему, но иногда php у меня почему-то отказывается читать все за один раз
|
K началу
|
|
|
Grumbler
Зарегистрирован: 06.07.02
Сообщения: 117
|
Добавлено: 17/03/04 в 17:16
|
|
bog, fopen(url) тоже через сокеты работает ;) Других способов я не знаю.
Отличие в том, что fopen не выдает некоторых очень полезных хедеров, вследствие чего файл может не забираться на некоторых хостингах.
|
K началу
|
|
|
bog
Зарегистрирован: 07.11.02
Сообщения: 1993
|
Добавлено: 17/03/04 в 19:21
|
|
Grumbler писал: | bog, fopen(url) тоже через сокеты работает ;) Других способов я не знаю.
Отличие в том, что fopen не выдает некоторых очень полезных хедеров, вследствие чего файл может не забираться на некоторых хостингах. |
знаю.. но чуть быстрее вроде... а самое быстрое это команда file() ;) а вообще хотите нормально с вебом работать в РНР - юзайте curl.
|
K началу
|
|
|
Еugene
Зарегистрирован: 10.12.03
Сообщения: 158
|
Добавлено: 17/03/04 в 19:26
|
|
http://pear.php.net/package/HTTP_Request
cURL это хорошо, но если на хостинге ее нет....
|
K началу
|
|
|
Текстовая реклама в форме ответа Заголовок и до четырех строчек текста Длина текста до 350 символов Купить рекламу в этом месте! |
Внимание! В связи с устареванием топика эта страница была взята из кэша.
|