Реклама на сайте Advertise with us
Тема: Вопрос по PHP Расширенный поиск по форуму
 
Внимание! В связи с устареванием топика эта страница была взята из кэша.
Автор Сообщение
Информация о пользователе 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 пустой icon_smile.gif
т.е. тебе не удается сконектиться с другим серваком...
или забанили или еще что нить.
попробуй 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 пустой icon_smile.gif
т.е. тебе не удается сконектиться с другим серваком...
;


Мне кажется конектится, вот более полный код:
<?
$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 символов
Купить рекламу в этом месте!
Внимание! В связи с устареванием топика эта страница была взята из кэша.

Спонсор раздела Стань спонсором этого раздела!

Реклама на сайте Advertise with us

Опросы

Рецепт новогоднего блюда 2022



Обсудите на форуме обсудить (11)
все опросы »